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


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


Теперь я, наконец, могу сказать, что у читателя есть полное представ­ление о том, как использовать реестр. Как всегда, рассмотрение темы заканчивается демонстрационной программой:

#includc <windows.h>

#include <commctrl.h>

#defme hKeyMin 0x80000000

#dcfi:ie hKeyMax 0x80000006 HINSTANCE hlnst; HWND hTrccChild; TVJNSERTSTRUCT InscrtStruct;

LRESULT CALLBACK RegistryWndProc ( HWND, UINT, UINT, LONG ); void FillTree(H\VND, HTREEITEM);

212

void FillBranch(ULONG, DWORD, HWND, HTREEITEM); void FillSubBranch(HKEY, char*, HWND, HTREEITEM);

int WINAPI WinMain (HINSTANCE hlnstance, HINSTANCE hPrevhistance. LPSTR IpszCmdParam, int nCmdShow )

HWND hWnd;

WNDCLASS WndClass ;

MSG Msg;

char s/ClassNamef] = "Registry";

hlnst = hlnstance; /* Registering our window class */ /* Fill WNDCLASS structure */

WndClass.stylc = CS_HREDRAW | CSJVREDRAW;

WndClass.lpfnWndProc - RegistryWndProc;

WndClass.cbClsExtra = 0;

WndClass.cbWndExtra = 0;

WndClass.hlnstance = hlnstance ;

WndClass.hlcon = Loadlcon (NULL.IDI_APPLICATION1;

WndClass.hCursor = LoadCursor (NULL, IDC_ARROW);

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

WndClass.IpszMenuName = "";

WndClass.IpszClassName = szClassName;

if ( !RcgisterClass(&WndClass))

!

MessageBox(NULL,"Cannot register class","Error",MB_OK); return 0;

hWnd - CreateWindow(szClassName, "Registry Demo Program",

WS_POPUPWINDOW | WS_VISIBLE | WSJTAPTION,

100, 100,300,400,

NULL, NULL,

hlnstancc.NULL); if(!hWnd)

i

>

MessageBox(NULL,"Cannot create window" ."Error", MB_OK); return 0;

InitCommonControls(); /* Show our window */

ShowWindow(hWnd, nCmdShow); UpdatcWindow(hWnd);

/* Beginning of messages cycle */

while(GctMessage(&Msg, NULL, 0, ()))

213

TranslatcMessage(&Msg); DispalchMcssage(&Msg);

} return Msg.wParam;

LRESULT CALLBACK RegistryWndProc (HWND hWnd, UINT Message,

UINT wParam, LONG IParam )

»

RECT Rcct;




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



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