2013-04-06 39 views
5

還有就是我的計劃是如何開始的:如何讓WS_MAXIMIZE工作?

int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nShowCmd) 
    { 
     MapEditor mapEditor; 

     mapEditor.Run(); 

     return 0; 
    } 

且有MapEditor():

MapEditor::MapEditor() 
{ 
    /* Creates the window */ 
    WNDCLASSEX wClass; 
    ZeroMemory(&wClass,sizeof(WNDCLASSEX)); 
    wClass.cbSize=sizeof(WNDCLASSEX); 
    wClass.style=CS_HREDRAW|CS_VREDRAW; 
    wClass.lpfnWndProc=WinProc; 
    wClass.cbClsExtra=NULL; 
    wClass.cbWndExtra=NULL; 
    wClass.hInstance=GetModuleHandle(0); 
    wClass.hIcon=NULL; 
    wClass.hCursor=LoadCursor(NULL,IDC_ARROW); 
    wClass.hbrBackground=(HBRUSH)COLOR_WINDOW; 
    wClass.lpszMenuName=NULL; 
    wClass.lpszClassName="Map Editor"; 
    wClass.hIconSm=NULL; 

    if(!RegisterClassEx(&wClass)) 
    { 
     int nResult=GetLastError(); 

     MessageBox(NULL,"Failed to register window class","Window Class Failed",MB_ICONERROR); 
    } 

    ME_HWnd=CreateWindowEx(NULL, 
      "Map Editor", 
      "Map Editor", 
      WS_OVERLAPPEDWINDOW | WS_MAXIMIZE | WS_VISIBLE, 
      CW_USEDEFAULT, 
      CW_USEDEFAULT, 
      CW_USEDEFAULT, 
      CW_USEDEFAULT, 
      NULL, 
      NULL, 
      GetModuleHandle(0), 
      this); 

    if(!ME_HWnd) 
    { 
     int nResult=GetLastError(); 

     MessageBox(NULL,"Window class creation failed","Window Class Failed",MB_ICONERROR); 
    } 
    ShowWindow(ME_HWnd, WS_MAXIMIZE); 
} 

窗口永遠不會啓動最大化。爲什麼?

「看起來您的文章主要是代碼,請添加更多的細節。」 「看起來您的文章主要是代碼,請添加更多詳細信息。」完成!

+0

那最後一段是否抱怨?我不知道它是這麼做的:p – chris 2013-04-06 00:48:25

+0

是的......我發現很多這樣的抱怨太令人沮喪了! – 2013-04-06 00:49:40

+0

@chris,有很多自動化測試適用於試圖降低問題質量的下限。在這種情況下,我認爲這是適得其反的。 – 2013-04-06 01:25:00

回答

5

您正在將錯誤的第二個參數傳遞給ShowWindow。第二個參數應該是SW_...值,而不是WS_...值,如the documentation中所述。

+0

哇!謝謝。更令人震驚的是,我發現很多人沒有收到解決方案就報告相同的問題。 – 2013-04-06 01:34:42

+0

@MickaelBergeronNéron當其他一切都失敗時,請閱讀文檔。 (關於這個問題,文檔很清楚,你從來沒有想過要檢查它,感到驚訝。) – 2013-04-06 01:51:28

+0

我確實檢查過它。我只是沒有注意到信件的交換。 – 2013-04-06 01:54:03