Конференция "WinAPI" » Проблема с внесением [D7, WinXP]
 
  • deplomat (05.07.09 15:48) [0]

    var
     hWindow: HWND;
     msg: TMSG;
     WindowClass: TWndClassEx;
    //...
    function WindowCreate(WinCaption: PChar):HWND;
    begin
     WindowClass.cbSize := sizeof (WindowClass);
     WindowClass.style := CS_HREDRAW or CS_VREDRAW;
     WindowClass.lpfnWndProc := @WindowProc;
     WindowClass.cbClsExtra := 0;
     WindowClass.cbWndExtra := 0;
     WindowClass.hInstance := HInstance;
     WindowClass.hIcon := LoadIcon (0,IDI_APPLICATION);
     WindowClass.hCursor := LoadCursor (0,IDC_ARROW);
     WindowClass.hbrBackground:=Color_BtnFace+2;
     WindowClass.lpszMenuName := nil;
     WindowClass.lpszClassName := CLASS_NAME;
     RegisterClassEx(WindowClass);

     Result:= CreateWindowEx(0,CLASS_NAME,WinCaption,
       WS_OVERLAPPED or WS_CAPTION or WS_SYSMENU or WS_THICKFRAME or
       WS_MINIMIZEBOX,100,100,WIN_WIDTH,WIN_HEIGHT,0,0,Hinstance,nil);

     SHOWWINDOW (hWindow,SW_Show);
    end;
    //...
    hWindow := WindowCreate(WIN_CAPTION);


    Во-первых: WindowClass - как только делаю ее не глобальной, регистрация класса заканчивается ошибкой. (Изначально регистрацию класса хотел сделать во внешней функции)
    И второе: Если CreateWindowEx я вызываю как в этой функции, окно даже не появляется на экране, работает только прямое присваивание переменной:
    hWindow:= CreateWindowEx


    Почему?
 
Конференция "WinAPI" » Проблема с внесением [D7, WinXP]
Есть новые Нет новых   [134433   +25][b:0][p:0.001]