Азбука программирования в Win32 API


Азбука программирования в Win32 API - стр. 35


/p>

Для установки текущего режима отображения используется функция SetMappingModeQ, которая в файле wingdi.h описана следующим образом:

WiNGDIAPI int   WINAPI SetMapMode(HDC. int);

Первый аргумент этой функции - хэндл контекста устройства, для которо­го устанавливается данный режим. Второй аргумент определяет задаваемый режим отображения. В том же файле wingdi.h можно найти и идентификато­ры, использующиеся для обозначения режимов отображения (табл. 6). Наде­юсь, что после того, как была просмотрена таблица, вопросов у читателя не возникло. Теперь ясно, что иногда для решения конкретных задач (например, построения графиков) можно использовать различные режимы отображения. При создании окна по умолчанию устанавливается режим ММ_ТЕХТ, т. е. все координаты исчисляются в пикселах.

38

Пишем програмл i у

Наша программа будет отображать bitmap в окне и при необходимо-: in производить его масштабирование:

«include <wmdows.h>

LRESULT CALLBACK. DCDenioWndProc ( HWND. UINT, UINT, LONG );

ml WINAPI WinMaiiuHINSTANCL hlnstance. HINSTANCE hPrevInstance, LPSTR IpszCmdParam, in! nCmdShow )

HWNDhWnd;

WNDCLASS WndClass ;

MSU Msg;

char szClassNamcf] - "DCDcmo";

* Registering our window class */

* Fill WNDCLASS structure */

WndClass.stylc - CS_HRF.DRAW | CS_VREDRAW;

WndClass.lpfnWiulProc - DCDenioWndProc;

WndClass.cbClsExtra - 0;

WndClass.cbWndExtra = 0;

WndClass.hlnstance ~ lilnstance ;

WndClass.hlcon - Loadlcon (NULL,IDI_APPLICATION);

WndClass.hCursor = LoadCursor (NULL, IDC_ARROW);

WndClass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH);

WndClass.IpszMcnuName = "MyMcnu";

WndClass.IpszClassNamc = szClassNamc;

if ( !RcgislcrClass(&WndClass))

i i

McssagcBox(NULL,"Cannot register class","F.rror",MB_OK); return 0;

hWnd ~ CreateWindow(szClassNamc, "Program No 1",

WS OVERLAPPEDWINDOW, CW USEDEFAULT, CWJJSEDEFAULT, CWJJSEDEFAULT. CWJJSEDEFAULT, NULL, NULL, hlnstance.NULL); if(!hWnd) {

MessagcBox(NULL,"Cannot create window","Error",MB_OK); retuni 0;




Начало  Назад  Вперед



Книжный магазин