在 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 或图片控件中创建矩形的主要内容,如果未能解决你的问题,请参考以下文章
JavaFX 2 中的 GroupBox / TitledBorder?