|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Заставить окно перерисоваться
Добрый день, форумчане, зациклился на одной проблеме и никак не могу ее решить, поиск так же не помог. Чего-то я не догоняю.
У меня есть код, взятый из примеров по GDIPlus Код:
program GDITEST8; uses Windows, Messages, SysUtils, GDIPAPI, GDIPOBJ; Procedure OnPaint(DC: HDC); var graphics : TGPGraphics; pen: TGPPen; begin graphics := TGPGraphics.Create(DC); pen:= TGPPen.Create(MakeColor(255, 0, 0, 255)); graphics.DrawLine(pen, 0, 0, random(200), random(200)); graphics.Free; pen.Free; end; function WndProc(Wnd : HWND; message : UINT; wParam : Integer; lParam: Integer) : Integer; stdcall; var Handle: HDC; ps: PAINTSTRUCT; begin case message of WM_PAINT: begin Handle := BeginPaint(Wnd, ps); OnPaint(Handle); EndPaint(Wnd, ps); result := 0; end; WM_KEYUP: case wParam of VK_ESCAPE: begin PostQuitMessage(0); result := 0; end; VK_SPACE: begin // Result:=0; end; else Result:=0; end; WM_DESTROY: begin PostQuitMessage(0); result := 0; end; else result := DefWindowProc(Wnd, message, wParam, lParam); end; end; var hWnd : THandle; Msg : TMsg; wndClass : TWndClass; begin wndClass.style := CS_HREDRAW or CS_VREDRAW; wndClass.lpfnWndProc := @WndProc; wndClass.cbClsExtra := 0; wndClass.cbWndExtra := 0; wndClass.hInstance := hInstance; wndClass.hIcon := LoadIcon(0, IDI_APPLICATION); wndClass.hCursor := LoadCursor(0, IDC_ARROW); wndClass.hbrBackground := HBRUSH(GetStockObject(WHITE_BRUSH)); wndClass.lpszMenuName := nil; wndClass.lpszClassName := 'GettingStarted'; RegisterClass(wndClass); hWnd := CreateWindow( 'GettingStarted', // window class name 'Drawing a Line', // window caption WS_OVERLAPPEDWINDOW, // window style Integer(CW_USEDEFAULT), // initial x position Integer(CW_USEDEFAULT), // initial y position Integer(CW_USEDEFAULT), // initial x size Integer(CW_USEDEFAULT), // initial y size 0, // parent window handle 0, // window menu handle hInstance, // program instance handle nil); // creation parameters ShowWindow(hWnd, SW_SHOW); UpdateWindow(hWnd); while(GetMessage(msg, 0, 0, 0)) do begin TranslateMessage(msg); DispatchMessage(msg); end; end. Так же, хотелось бы попросить ссылочку на адекватный обзор GDIPlus, его минусы и плюсы, и ваше мнение по использованию данной библиотеки. |
#2
|
||||
|
||||
Цитата:
http://www.rsdn.ru/article/gdi/gdiplus1.xml http://www.rsdn.ru/article/gdi/gdiplus2mag.xml http://www.rsdn.ru/article/gdi/gdiplus3.xml Библиотека отлично подойдет для всякой сложной графики. Для простой тоже подойдет, но тут уже GDI побыстрее будет. РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت |