我在Windows操作系统上创建窗口时遇到了一个非常奇怪的错误 我正在使用以下部分代码创建窗口。 这个窗口是另一个应用程序中的一个插件,因此我在其他应用程序提供的窗口内创建一个窗口作为子窗口。
newWindow = ::CreateWindow("SomeName",
"",
WS_CLIPCHILDREN | WS_CLIPSIBLINGS | WS_CHILD | WS_VISIBLE,
in_create_options._location.m_x,
in_create_options._location.m_y,
in_create_options._size.m_x,
in_create_options._size.m_y,
(HWND)in_create_options._parent,
0,
0,
newView);
但是当窗口被激活时,它也有WS_MINIMIZE标志,因此被激活最小化。问题是,它只发生在RELEASE模式,因此我无法调试它 我想问的是 - 有人知道可能导致这种情况的原因吗? 另外,有什么办法可以在激活前检查和更新窗口标志吗?
P.S。我试过这段代码:
WINDOWINFO currentWindowInfo;
::GetWindowInfo(((WCPluginViewWin *)in_view)->m_nativeView, ¤tWindowInfo);
if (currentWindowInfo.dwStyle & WS_MINIMIZE)
{
currentWindowInfo.dwStyle &= ~WS_MINIMIZE;
::AdjustWindowRect(¤tWindowInfo.rcClient,
}
::ShowWindowAsync(((WCPluginViewWin *)in_view)->m_nativeView, SW_SHOW);
但它仍然无效。窗口仍然以WS_MINIMIZE标志打开。 还有别的东西,而不是AdjustWindowRect?
答案 0 :(得分:0)
解决了这个问题。
:: ShowWindowAsync(((WCPluginViewWin *)in_view) - > m_nativeView, SW_SHOW );
需要更改为
:: ShowWindowAsync(((WCPluginViewWin *)in_view) - > m_nativeView, SW_SHOWNORMAL );