在CPropertySheet / CDialog上使用ModifyStyle和WS_THICKFRAME

时间:2017-08-03 13:54:47

标签: windows winapi mfc

我有一个CPropertySheet。

当我使用

ModifyStyle(DS_MODALFRAME, WS_POPUP | WS_THICKFRAME | WS_MAXIMIZEBOX);
在OnCreate处理程序中

一切都很好。创建的窗口按预期运行,并且可以调整大小。

当我使用相同的代码时,只需在CPropertySheet :: OnInitDialog中打勾,这个代码只有显示正确框架的效果,当我在窗口边框上拖动时光标也会改变。但是没有调整大小的功能。

在OnInitDialog中使用CDialog也是如此。在创建窗口后无法更改某些标志的接缝。

是否有关于此问题的更多信息?

1 个答案:

答案 0 :(得分:3)

您需要在nFlags的通话中将ModifyStyle参数设置为SWP_FRAMECHANGED,也可以SWP_DRAWFRAME。这样它将在内部调用SetWindowPos,这将应用新样式。您还需要删除WS_SYSMENU而不是DS_MODALFRAME。

示例:

ModifyStyle(WS_SYSMENU, WS_POPUP | WS_THICKFRAME | WS_MAXIMIZEBOX, SWP_FRAMECHANGED);