Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我应该怎么做才能让WS_最大化工作?_C++_Oop_Winapi_Wndproc - Fatal编程技术网

C++ 我应该怎么做才能让WS_最大化工作?

C++ 我应该怎么做才能让WS_最大化工作?,c++,oop,winapi,wndproc,C++,Oop,Winapi,Wndproc,以下是我的课程开始的方式: int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nShowCmd) { MapEditor mapEditor; mapEditor.Run(); return 0; } 还有MapEditor(): 窗口永远不会最大化。为什么?您将错误的第二个参数传递给了ShowWindow。第二个参

以下是我的课程开始的方式:

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

        mapEditor.Run();

        return 0;
    }
还有MapEditor():


窗口永远不会最大化。为什么?

您将错误的第二个参数传递给了
ShowWindow
。第二个参数应该是
SW_……
值,而不是
WS_……
值,如中所述。

Wow!非常感谢。更令人震惊的是,我发现许多人报告同样的问题,却没有得到解决办法。@Mickelbergeronéron当所有其他方法都失败时,请阅读文档。(文档中关于这个主题的内容非常清楚。很惊讶你从未想过要检查它。)我确实检查过。我只是没有注意到字母交换。@Mickaelbergeronéron Ha,我从来没有注意到交换。这里有一个技巧:WS=窗口样式。SW=显示窗口。这是整个Win32中的常见模式。
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);
}