我正在尝试在对话框的图片控件框中创建一个矩形。然而,我可以在按钮点击后在对话框上绘制矩形,但我需要在图片控件中执行相同操作。
为什么我需要这样做? 实际上矩形的尺寸将决定运行时间,所以如果矩形在对话框上,它可能会覆盖下面的按钮和编辑框,我想保持图片控制,这样即使矩形的尺寸发生变化,它也是如此不会出现在图片框中。
我正在使用MFC在VC ++中开发 任何帮助赞赏。谢谢! :)
答案 0 :(得分:0)
您需要的技术称为子类化。您创建一个派生自CStatic的类(我将其称为CYourDerivedStatic),并在该类中为WM_PAINT消息添加消息处理程序。然后,您可以在OnPaint消息处理程序中绘制任何所需的内容。
void CYourDerivedStatic::OnPaint()
{
CPaintDC dc(this);
dc.FillSolidRect(...);
}
要首先将自定义类附加到图片框控件,请右键单击对话框编辑器中的控件和“添加变量”。这为您提供了对话框类中的CStatic成员变量。然后将“CStatic”编辑为“CYourDerivedStatic”并#include“YourDerivedStatic.h”。