CreateWindowEx在Windows 10上创建旧(Windows 7)样式边框

时间:2019-07-16 08:54:37

标签: c++ createwindowex window-style

每当我使用top 50创建一个窗口(确切的参数可以在下面的代码中找到)时,它就会像旧样式的窗口一样显示:

old style window

仅当我在远程桌面上启动它时,关闭连接并重新连接,它会更改为所需的Windows 10样式:

new style window

它与应用程序在执行此操作时收到的几条[datatime]消息有关吗?

很明显,我希望窗口在创建时具有现代风格,而不是在处理某些消息之后。

我尝试了CreateWindowEx(...)样式参数的不同组合。奇怪的是,该应用程序只能可靠显示WM_SETTINGCHANGE

我已经尝试了WS_...(具有各种参数)和WS_OVERLAPPEDWINDOW | WS_VISIBLE的两个顺序。

我还尝试过弄乱目标平台和工具集,但无济于事(使用VS2015,v140)。

代码段:

ShowWindow

1 个答案:

答案 0 :(得分:1)

奇怪的是,解决方案似乎是从样式标志中删除WS_VISIBLE,然后手动显示窗口:

if (handle != NULL)
{
    ... // resizing the window's contents
    ShowWindow(handle, 1); /* Add this */
    UpdateWindow(handle);
}

我100%确定已经尝试过,但是突然可以使用。随便...