首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在CPropertySheet/CDialog上使用ModifyStyle和WS_THICKFRAME

在CPropertySheet/CDialog上使用ModifyStyle和WS_THICKFRAME
EN

Stack Overflow用户
提问于 2017-08-03 13:54:46
回答 1查看 1.4K关注 0票数 2

我有一个CPropertySheet。

当我用

代码语言:javascript
复制
ModifyStyle(DS_MODALFRAME, WS_POPUP | WS_THICKFRAME | WS_MAXIMIZEBOX);

在OnCreate处理程序中,一切都很好。所创建的窗口的行为与预期相同,且可调整大小。

当我使用相同的代码时,只需在CPropertySheet::OnInitDialog中稍晚一点,就会显示正确的框架,当我拖过窗口边框时,光标也会发生变化。但是没有调整尺寸的功能。

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

关于这个问题还有更多的信息吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-03 14:50:04

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

示例:

代码语言:javascript
复制
ModifyStyle(WS_SYSMENU, WS_POPUP | WS_THICKFRAME | WS_MAXIMIZEBOX, SWP_FRAMECHANGED);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45486327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档