MFC面板和窗口把手

Posted

技术标签:

【中文标题】MFC面板和窗口把手【英文标题】:MFC Panel and window handle 【发布时间】:2008-10-28 19:22:02 【问题描述】:

有没有可以在 MFC 应用程序中使用的面板之类的东西。这是为了覆盖 MFC(对话框应用程序)中的默认窗口。然后将面板涂成黑色并在其顶部涂上一些随机的东西。类似于视口的东西。

有没有比这更好的选择来达到同样的效果?

【问题讨论】:

【参考方案1】:

当然。这叫窗户!创建一个派生自 CWnd 并覆盖 OnPaint() 的类。

在对话框的 OnInitInstance() 中,实例化一个 CMyWnd 对象并将其称为 Create() 成员。当然,请确保您的 CMyWnd 对象的生命周期与对话框的对象生命周期窗口相同。 iow,让它成为你 CMyDialog 类的成员。

不是很复杂,但显然 MFC 显示了它为什么不属于 RAD 工具类别的一个领域。

【讨论】:

【参考方案2】:

另一种解决方案是从CDialog 派生。这样,您可以使用资源编辑器直观地编辑面板,而无需自己绘制任何内容。此外,Panel 类相当薄,只需要传播 Create()Show() 调用即可支持单个表单中的子面板和多个面板。

【讨论】:

以上是关于MFC面板和窗口把手的主要内容,如果未能解决你的问题,请参考以下文章

MFC 功能区面板名称问题

使用 VS6 C++ GUI 编辑器、MFC 以屏幕(像素)为单位调整全屏窗口大小?

mfc 窗口大小变化时,如何让窗口内部控件也一起随比例改变位置?

MFC修改初始窗口大小和窗口名字禁止窗口最大,最小化

mfc SetWindowPos

MFC中嵌套QT窗口,如果让qt窗口跟随MFC的窗口移动