社区
C++ Builder
帖子详情
关于MDI窗体恢复的问题
青蛙工作室
2016-10-30 11:19:21
一个MDI主窗体,内有若干子窗体,主窗体和各子窗体都可以最大化,到这步都是正常的。
然后用户把主窗体最小化,窗体成为任务栏图标,也都正常,但当把这个最小化的任务栏图标点击,窗体预期的变化应该是最大化,但事实是窗体还原成普通窗体(wsNormal),跟踪发现这个过程中主窗体的resize事件触发2次,第一次确实是最大化,然后接着再还原成普通。
我的问题是,窗体第二次resize并非预期,为何会发生? 如何避免(这是重点)?
...全文
178
5
打赏
收藏
关于MDI窗体恢复的问题
一个MDI主窗体,内有若干子窗体,主窗体和各子窗体都可以最大化,到这步都是正常的。 然后用户把主窗体最小化,窗体成为任务栏图标,也都正常,但当把这个最小化的任务栏图标点击,窗体预期的变化应该是最大化,但事实是窗体还原成普通窗体(wsNormal),跟踪发现这个过程中主窗体的resize事件触发2次,第一次确实是最大化,然后接着再还原成普通。 我的问题是,窗体第二次resize并非预期,为何会发生? 如何避免(这是重点)?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ooolinux
2016-11-01
打赏
举报
回复
this->WindowState = 2; 也够懒
wsNormal The form is in its normal state (that is, neither minimized nor maximized). wsMinimized The form is minimized. wsMaximized The form is maximized.
青蛙工作室
2016-11-01
打赏
举报
回复
我用的2009,win7。问题很奇怪,影响用户体验,很郁闷。
青蛙工作室
2016-11-01
打赏
举报
回复
bug不bug的不敢说,我试过,MDI窗体如果没有子窗体就正常,只要有子窗体就自动还原到普通,不会最大化。 今晚自己弄的比较“高级”的做法,使用ApplicationEvents控件,拦截SC_RESTORE消息,在这个消息内人为的让窗体最大化,并置标志变量为true,也就这么2句: if (Msg.wParam == SC_RESTORE) { this->WindowState = 2; Handled = true ; } 问题解决。 谢谢楼上同头像的用户。
ooolinux
2016-11-01
打赏
举报
回复
2009难道这个是Bug?我用BCB 6.0也是在Win7 64位下。
ooolinux
2016-10-30
打赏
举报
回复
我BCB 6.0的一个MDI例子没有发现这个问题。
MDI
窗体
限制大小禁用最大化最小化按钮
MDI
窗体
控制,禁止调整大小,禁用最大化及最小化按钮。
delphi小实验 关于
MDI
窗体
的创建
这里有一些经典实用的delphi小实验,相信会给初学者很大帮助!!
用户界面\
MDI
窗体
高级控制
用户界面\
MDI
窗体
高级控制用户界面\
MDI
窗体
高级控制
MDI
Tab 标签页显示
MDI
窗体
可以实现以标签选项卡的形式来显示
MDI
窗体
的delphi控件。
精彩编程与编程技巧-关闭
MDI
窗体
中所有的子
窗体
...
精彩编程与编程技巧-关闭
MDI
窗体
中所有的子
窗体
...
C++ Builder
13,873
社区成员
102,696
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章