Код | program BLACK_KOT;
uses Messages, Windows; {$R 1.res} //здесь иконка var Form1: HWND; BLACK_KOT_window: TWndClass; Msg: TMsg;
//--------------------главный обработчик сообщений function WndProc(hnd, wmsg, wparam, lparam: integer): integer; stdcall; begin Result:=0; case wmsg of
WM_DESTROY: PostQuitMessage(0); else Result:=DefWindowProc(hnd, wmsg, wparam, lparam); end; end;
Procedure CreateMySelf; begin { with BLACK_KOT_window do //вариант записи номер 1 begin lpszClassName:='BLACK_KOT_window'; lpfnWndProc:=@WndProc; hCursor:=LoadCursor(hInstance, IDC_ARROW); hIcon:=LoadIcon(HInstance,MakeIntResource('ICON_0')); hbrBackground:=COLOR_3DSHADOW; end; }
BLACK_KOT_window.lpszClassName:='BLACK_KOT_window'; //вариант записи номер 2 BLACK_KOT_window.lpfnWndProc:=@WndProc; BLACK_KOT_window.hCursor:=LoadCursor(0, IDC_ARROW); BLACK_KOT_window.hIcon:=LoadIcon(HInstance,MakeIntResource('ICON_0')); BLACK_KOT_window.hbrBackground:=COLOR_3DSHADOW;
RegisterClass(BLACK_KOT_window); Form1:=CreateWindowEx(0, 'BLACK_KOT_window','Form1', WS_OVERLAPPEDWINDOW or WS_VISIBLE,254, 189, 493,498, 0, 0, HInstance, nil); end;
begin CreateMySelf; while GetMessage(Msg, 0, 0, 0) do begin TranslateMessage(Msg); DispatchMessage(Msg); end; end.
|
я думал, что записи номер1 и номер2 равнозначны. но на деле если использовать запись номер 1, то иконка в заголовке формы не отображается. с записью номер 2 - отображается. курсор во второй записи можно задать только hCursor:=LoadCursor(0, IDC_ARROW); а в первой hCursor:=LoadCursor(0, IDC_ARROW); и hCursor:=LoadCursor(hInstance , IDC_ARROW); Почему так происходит? и что за MakeIntResource? можно вместо неё использовать pchar. Зачем нужна эта функция? причём она не отображается при нажатии контрл+пробел, ну как и pchar впрочем. |