我有一个CPropertySheet。

当我使用

ModifyStyle(DS_MODALFRAME, WS_POPUP | WS_THICKFRAME | WS_MAXIMIZEBOX);

在OnCreate处理程序中,一切都很好。创建的窗口的行为符合预期并可以调整大小。

当我使用相同的代码时,在CPropertySheet::OnInitDialog中稍稍打勾之后,此代码仅具有显示正确帧的效果,并且当我在窗口边框上拖动时,光标也会改变。但是没有调整大小功能。

在OnInitDialog中使用CDialog也会发生同样的情况。暗示在创建窗口后无法更改某些标志。

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

最佳答案

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

例子:

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

10-08 08:55