2011-04-17 52 views
1

我正在使用Win32资源创建包含单个选项卡控件的对话框。选项卡工作正常时,改变标签,但以某种方式拖动窗口关闭屏幕(例如,拖动它通过屏幕底部,然后备份)将导致标签内容消失。我认为这可能是一个问题,因为我已经设置了剪辑属性,但经过大量的调整后,我仍然没有完全按照我的预期工作。Win32 - 当拖动屏幕时,选项卡控件中的内容消失

我已经上传了一个基本的框架项目,这里只有最低限度的重现这个问题,如果有人能检查出来,我会非常感激。

http://localhostr.com/file/nPTbTTQ/skeleton.rar

+0

它有相同的刷新问题,如果你拖动另一个窗口通过你的应用程序?这听起来像我们的应用程序没有正确处理WM_PAINT消息。在Win32中,窗口不记得上面画的是什么。相反,当你的窗口的一部分(或全部)失效时,例如当你将它从屏幕上拖出时,win32将发送WM_PAINT并要求应用重绘。通常如果你只是有控件,每个人都会重绘自己,但也许你的代码中的某些东西拦截了WM_PAINT,所以它没有得到正确的控制?只是猜测,没有时间看你的代码 – DXM 2011-04-17 18:38:53

回答

1

它是一种Z顺序问题,对话是后面标签控制。将内部对话框的父对象从hwndDlg更改为hwndTab。我不想猜测你为什么看到静态控制文本。

+0

感谢汉斯,就是这样。 – 2011-04-17 18:55:59

+1

你不应该这样做。选项卡控件故意为空。属性表使用主对话框作为所有页面的父对象,并隐藏并显示相关页面。 WS_CLIPSIBLINGS不应该与选项卡控件或组框一起使用。 – 2011-04-18 11:21:25