Уроки Iczelion'а



         

Урок 4. Отрисовка текста - часть 3


  • Получить хэндл контекста устройства с помощью BeginPaint.
  • Отрисовать клиентскую область.
  • Освободить хэндл функцией EndPaint.
  • Заметьте, что вы не обязаны думать о том, чтобы пометить неполноценные прямоугольники как нормальные, так как это делается автоматически при вызове Beginpaint. Между связкой Beginpaint-Endpaint, вы можете вызвать любую другую графическую функцию, чтобы рисовать в вашей клиентской области. Практически все из них требуют хэндл контекста устройства.

    Содержимое:

    Мы напишем программу, отображающую текстовую строку "Win32 asstmble is great and easy!" в центре клиентской области.

    .386

    .model flat,stdcall option casemap:none

    WinMain proto :DWORD,:DWORD,:DWORD,:DWORD

    include \masm32\include\windows.inc

    include \masm32\include\user32.inc includelib \masm32\lib\user32.lib include \masm32\include\kernel32.inc includelib \masm32\lib\kernel32.lib

    .DATA ClassName db "SimpleWinClass",0

    AppName db "Our First Window",0 OurText db "Win32 assembly is great and easy!",0

    .DATA? hInstance HINSTANCE ? CommandLine LPSTR ?

    .CODE start: invoke GetModuleHandle, NULL

    mov hInstance,eax invoke GetCommandLine mov CommandLine,eax invoke WinMain, hInstance,NULL,CommandLine, SW_SHOWDEFAULT

    invoke ExitProcess,eax

    WinMain proc hInst:HINSTANCE, hPrevInst:HINSTANCE, CmdLine:LPSTR, CmdShow:DWORD

    LOCAL wc:WNDCLASSEX LOCAL msg:MSG LOCAL hwnd:HWND

    mov wc.cbSize,SIZEOF WNDCLASSEX mov wc.style, CS_HREDRAW or CS_VREDRAW mov wc.lpfnWndProc, OFFSET WndProc mov wc.cbClsExtra,NULL mov wc.cbWndExtra,NULL push hInst pop wc.hInstance mov wc.hbrBackground,COLOR_WINDOW+1 mov wc.lpszMenuName,NULL mov wc.lpszClassName,OFFSET ClassName invoke LoadIcon,NULL,IDI_APPLICATION mov wc.hIcon,eax mov wc.hIconSm,eax invoke LoadCursor,NULL,IDC_ARROW mov wc.hCursor,eax invoke RegisterClassEx, addr wc

    invoke CreateWindowEx,NULL,ADDR ClassName,ADDR AppName,\ WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,\

    CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,\ hInst,NULL




    Содержание  Назад  Вперед