c++ - 我应该怎么做才能让 WS_MAXIMIZE 工作?

标签 c++ oop winapi wndproc

我的程序是这样开始的:

   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);
}

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

最佳答案

您向 ShowWindow 传递了错误的第二个参数。第二个参数应该是 SW_... 值,而不是 WS_... 值,如 the documentation 中所述。 .

关于c++ - 我应该怎么做才能让 WS_MAXIMIZE 工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15845768/

相关文章:

python - 由于 OOP,子弹没有向上移动

java - 为什么 ArrayList 没有实现 Queue?

windows - 如何确定应用程序正在使用的窗口句柄数?

c++ - 是否可以从参数访问成员名称

c++ - 在 C++ 中使用模板时返回 NULL

c++ - 大量套接字操作的段错误

c++ - 如何释放从 native 代码发送回 Java 的 jstring?

c# - protected 内部类在类内工作但不在外工作

c++ - Win32 : Bitmap Instantiation Breaking Function

c++ - 如何在 Windows 中立即刷新文件夹图标