已知的CPropertysheet bug: 切换焦点导致无响应
来源:互联网 发布:阿里云免费邮箱 - 百度 编辑:程序博客网 时间:2024/04/29 04:29
当一个页面内容比较多时我们首先可能考虑用Tab Control,但如果有很多页面内容需要动态加载则用CPropertySheet比较好点~
CPropertySheet有两种不同的显示模式.一种就是向导页面,另一种就是跟Tab Control一样的效果.
假如这样一个简单的CPropertySheet (可以把它看成一个容器,里面装着很多个CPropertyPage)
public CSheet : public CPropertySheet{
//.....
}
CSheet sheet;
sheet.DoModal();
这样使用不管你怎么点来点去都不会有问题.
但如果你是把CPropertySheet放到一个Dialog中去,或者嵌套到另外一个CPropertySheet里.
CSheet* pSheet;
pSheet = new CSheet;
pSheet->Create(this,DS_CONTEXTHELP | DS_SETFONT | WS_CHILD | WS_VISIBLE|WS_CLIPCHILDREN|WS_CLIPSIBLINGS);
当你在CPropertySheet中点一下,然后切换到其他地方点下,现点回来时页面就卡住没反应了.而且不是只卡一会而是永远处是Not Responding的状态.这应该算是CPropertySheet的一个已知的bug
参见: http://support.microsoft.com/kb/149501/en-us
就是需要设置下一个属性
pSheet->Create(this,DS_CONTEXTHELP | DS_SETFONT | WS_CHILD | WS_VISIBLE|WS_CLIPCHILDREN|WS_CLIPSIBLINGS,
,WS_EX_CONTROLPARENT
);
这样一设置点来点去也不会卡死在那了.不过有些时候这样设置了还不行.还得在
OnInitDialog和PreCreateWindow中再设置下属性
参见: http://bbs.csdn.net/topics/80402533
特殊情况的处理
前面讲的只是两种情形:1.有一个CDialog,然后上面有个CPropertySheet . 2.在1中的CPropertySheet中再嵌套一个CPropertySheet.
但如果是更复杂的情况呢.
假如CDialog里面有一个动态创建的CWnd或CDialog,然后再嵌套两个CPropertySheet.此时会发现给外层的CPropertySheet这样更改属性
m_pSheet->ModifyStyleEx(0,WS_EX_CONTROLPARENT); 运行之后会出错. 那咋办呢?
要把动态创建的CWnd或CDialog的属性也更改下才行.m_pWnd->ModifyStyleEx(0,WS_EX_CONTROLPARENT);
- 已知的CPropertysheet bug: 切换焦点导致无响应
- CPropertySheet失去焦点后程序失去响应
- 解决setOnItemClickListener无响应的bug
- PHP后台运行模式初探(附一个页面SLEEP导致整个网站文件无响应BUG的解决)
- Android的dialog控制焦点导致其后Activity不响应
- 解决PopupWindow获得焦点后按键无响应的问题
- 切换动画overridePendingTransition切换无响应的方法
- 记一次ORACLE SQLPLUS 无响应 导致的奇怪问题
- 工作区的文件状态错误导致eclipse无响应
- 关于nav-tabs 切换导致的bug的经验总结
- 循环变量为无符号整型导致的代码bug
- 同一篇打开两次office无响应的bug
- UITapGestureRecognizer 与 UIButton 按钮 无响应的bug
- 记录一个cell的Action事件无响应bug
- DFB的焦点切换
- CPropertySheet标签页 实现各个CPropertyPage页面之间的切换
- 多线程ADO数据访问程序在vmware虚拟机中执行时切换输入法导致用户界面无响应
- listView中setOnItemClickListener()无响应,焦点(点击事件)冲突的解决
- 基于车联网(IOV)
- mac gevent
- uva 10192 - Vacation(简单的最长公共子序列)
- GIS历年考研题(名词解释)答案
- YUV420P转换为RGB32格式
- 已知的CPropertysheet bug: 切换焦点导致无响应
- android 获取本机号码及应加的权限 代码
- poj 1270
- poj-2601Simple calculations
- java通过线程控制程序执行超时(新)_hanCSDN_20130816
- 计时的性能分析
- FormClosing事件
- 修改Fedora 14屏幕分辨率
- 【电脑教程§系统中的任务管理器存在哪些你不知道的功能§】