MFC DockablePane 窗口,为什么移动窗口边框会有混乱?

图片说明

这个是一个MFC单文档工程改的,图示位置本来是单文档默认的属性和输出窗口。
我把属性窗口用我自定义成员(DockablePane的子类对象)替换掉了。
这时候我发现拖动这两个窗体的边框会产生乱七八糟的竖线横线。
截图里面的编辑框和文本框是我自己create的。
想请教一下老手们~这是因为我没有写重绘事件还是什么其他原因,MFC新手谢谢大家~
(源码也不知道贴哪个类的……emmmm,还请赐教~)

mfc

2个回答

pane里面不刷新,要你填充对话框或view才行,pane里面是空白

qq_33298609
好来滴茶 ok了,谢谢
大约一年之前 回复
xingjianfengaa
xingjianfengaa 回复: 你在资源里建个dialog,然后把按钮拖到dialog上去,类向导可以帮你做好,或在你的dialog类里动态创建就是建一个变量然后create 新的按钮
大约一年之前 回复
qq_33298609
好来滴茶 试了,对了~~pane里面定义dialog和响应create和onsize就好了。不过怎么把按钮这些放在dialog上呢
大约一年之前 回复
qq_33298609
好来滴茶 回复xingjianfengaa: 不好意思才看到,我理解理解去试试看哈
大约一年之前 回复
xingjianfengaa
xingjianfengaa 回复qq_33298609: 比如你上面不是有几个static吗,你把static调整到和pane一样大,然后按钮和其他都放在static上, 例子而已,static换成dialog
大约一年之前 回复
xingjianfengaa
xingjianfengaa 回复qq_33298609: 就是在pane创建一个cdialog或view,创建个dlg方便些,就是实现各Cdialog,类型设置为WS_CHILD,调整size就哦吧
大约一年之前 回复
qq_33298609
好来滴茶 “填充对话框或view”是什么意思,可以再多说一些关键词让我去查吗。
大约一年之前 回复

应该是你的控件没有作为panel的子窗口,你有没有设置WS_CHILD风格

参考代码:
 if (!m_MyPane.Create(_T("MyPane"), this, CRect(0, 0, 100, 100), TRUE, IDD_DIALOG_DOCKDLG, WS_CHILD | WS_VISIBLE |WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI))
...

qq_33298609
好来滴茶 CString strInputWnd; bNameValid = strInputWnd.LoadString(IDS_PROPERTIES_WND); ASSERT(bNameValid); if (!m_InputPane.Create(strInputWnd, this, CRect(0, 0, 200, 200), TRUE, ID_VIEW_PROPERTIESWND, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_RIGHT | CBRS_FLOAT_MULTI)) { TRACE0("未能创建“输入”窗口\n"); return FALSE; // 未能创建 }
大约一年之前 回复
qq_33298609
好来滴茶 我看了以下我的创建,“WS_CHILD”风格有的呀
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!