gpt4 book ai didi

c++ - CreateWindowEx 发布 WM_SIZE?

转载 作者:太空宇宙 更新时间:2023-11-04 13:36:04 24 4
gpt4 key购买 nike

CreateWindowEx API 真的会发送 WM_SIZE 消息吗?

当我通过 CreateWindowEx 创建一个窗口作为全屏模式时,

CreateWindowEx 发布 WM_SIZE窗口模式 没有。

我的代码是这样设置窗口样式的:

if(bFullscr)
{
//When the window is in full screen mode.
nStyle = WS_POPUP;
nExtraStyle = WS_EX_APPWINDOW;
}
else
{
//Otherwise.
nStyle = WS_OVERLAPPEDWINDOW;
nExtraStyle = (WS_EX_APPWINDOW | WS_EX_WINDOWEDGE);
}

并像这样更改显示设置(仅全屏模式):

if(bFullscr)
{
DEVMODE sScrSet;
memset(&sScrSet, 0, sizeof(DEVMODE));
sScrSet.dmSize = sizeof(DEVMODE);
sScrSet.dmPelsWidth = nWidth;
sScrSet.dmPelsHeight = nHeight;
sScrSet.dmBitsPerPel = nColorBit;
sScrSet.dmFields = (DM_BITSPERPEL | DM_PELSHEIGHT | DM_PELSWIDTH);

if(ChangeDisplaySettings(&sScrSet, CDS_FULLSCREEN) != DISP_CHANGE_SUCCESSFUL)
{
//Error routine.
}
}

我真的很奇怪为什么 CreateWindowEx 有选择地发布 WM_SIZE 消息。

最佳答案

如果您只是想调整窗口大小,在您的代码中的某处您应该有 ShowWindow(hWnd, nCmdShow); 如下更改它:

ShowWindow(hWnd, SW_SHOWDEFAULT);//show normal
ShowWindow(hWnd, SW_SHOWMAXIMIZED);//show maximized (full screen)
SetWindowPos(hWnd, NULL, 10, 10, 300, 300, SWP_SHOWWINDOW);//show at specific position

您也可以在 CreateWindow 中使用 WS_MAXIMIZE,但这会使事情复杂化。窗口通常有 WS_OVERLAPPEDWINDOWWS_POPUP|WS_CAPTION|WS_SYSMENU。您应该选择一个并保持简单。

当窗口大小改变时,它会收到 WM_SIZE,您可以捕获并检查它。

关于c++ - CreateWindowEx 发布 WM_SIZE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29573270/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com