我有一个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);