Visual c++ 在groupbox中创建矩形或在MFC中创建图片控件
我试图在对话框的图片控制框中创建一个矩形。不过,我现在可以在点击按钮后在对话框中绘制矩形,但我需要在图片控件中进行同样的操作 我为什么要这样做? 实际上,矩形的尺寸将在运行时决定,因此,如果矩形在对话框中,它可能会覆盖下面的按钮和编辑框,我希望保持图片控制,以便即使矩形的尺寸发生变化,它也不会从图片框中出来 我正在用MFC在VC++中开发Visual c++ 在groupbox中创建矩形或在MFC中创建图片控件,visual-c++,visual-studio-2012,mfc,Visual C++,Visual Studio 2012,Mfc,我试图在对话框的图片控制框中创建一个矩形。不过,我现在可以在点击按钮后在对话框中绘制矩形,但我需要在图片控件中进行同样的操作 我为什么要这样做? 实际上,矩形的尺寸将在运行时决定,因此,如果矩形在对话框中,它可能会覆盖下面的按钮和编辑框,我希望保持图片控制,以便即使矩形的尺寸发生变化,它也不会从图片框中出来 我正在用MFC在VC++中开发 谢谢你的帮助。谢谢!:) 您需要的技术称为子类化。您创建了一个从CStatic派生的类(我称之为CYourDerivedStatic),并在该类中为WM_PA
谢谢你的帮助。谢谢!:) 您需要的技术称为子类化。您创建了一个从CStatic派生的类(我称之为CYourDerivedStatic),并在该类中为WM_PAINT消息添加了一个消息处理程序。然后,可以在OnPaint消息处理程序中绘制所需的任何内容
void CYourDerivedStatic::OnPaint()
{
CPaintDC dc(this);
dc.FillSolidRect(...);
}
要将自定义类附加到图片框控件,请首先右键单击对话框编辑器中的控件并“添加变量”。这将在dialog类中为您提供一个CStatic成员变量。然后将“CStatic”编辑为“CYourDerivedStatic”并#包括“YourDerivedStatic.h”。你刚才说的“然后将“CStatic”编辑为“CYourDerivedStatic”并#包括“YourDerivedStatic.h”是什么意思?抱歉,如果这是一个愚蠢的问题,但我不习惯使用“添加变量”向导创建CStatic m_pict进行大量编程;然后将其编辑为CYourDerivedStatic Mu pict;