在 MFC 中的 groupbox 或图片控件中创建矩形

Posted

技术标签:

【中文标题】在 MFC 中的 groupbox 或图片控件中创建矩形【英文标题】:Create rectangle in groupbox or picture control in MFC 【发布时间】:2014-02-16 11:39:08 【问题描述】:

我正在尝试在对话框的图片控件框中创建一个矩形。但是,我现在可以在单击按钮后在对话框上绘制矩形,但我需要在图片控件中执行相同的操作。

为什么我需要这样做? 实际上矩形的尺寸将在运行时决定,所以如果矩形在对话框上,它可能会覆盖下面的按钮和编辑框,我想保持图片控制,这样即使矩形的尺寸发生变化,它不会从图片框中出来。

我正在使用 MFC 进行 VC++ 开发 任何帮助表示赞赏。谢谢! :)

【问题讨论】:

【参考方案1】:

您需要的技术称为子类化。您创建一个从 CStatic 派生的类(我将其称为 CYourDerivedStatic),并在该类中为 WM_PAINT 消息添加一个消息处理程序。然后你可以在 OnPaint 消息处理程序中绘制任何你想要的东西。

void CYourDerivedStatic::OnPaint()

 CPaintDC dc(this);
 dc.FillSolidRect(...);

要将您的自定义类附加到图片框控件,首先您右键单击对话框编辑器中的控件并“添加变量”。这为您提供了对话框类中的 CStatic 成员变量。然后将“CStatic”编辑为“CYourDerivedStatic”并#include“YourDerivedStatic.h”。

【讨论】:

当您说“然后将“CStatic”编辑为“CYourDerivedStatic”并#include“YourDerivedStatic.h”时,我只是失去了意义。你到底什么意思?对不起,如果这是一个愚蠢的问题,但我不习惯很多编程 使用“添加变量”向导创建 CStatic m_pict;然后将其编辑为 CYourDerivedStatic m_pict;

以上是关于在 MFC 中的 groupbox 或图片控件中创建矩形的主要内容,如果未能解决你的问题,请参考以下文章

c# 中如何在GroupBox控件中动态添加与移除控件

如何使用集合编辑器窗口在 GroupBox 中创建文本框?

JavaFX 2 中的 GroupBox / TitledBorder?

MFC,多线程,static控件程序中的仿佛是更新卡死的问题,敬请各位高手解答!

VB.NET 如何去掉 GroupBox 控件的边框?

MFC 怎么将控件放到一个组,就是一组复选框,里面的CHECK BOX有3个,一起用于选择控制