Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual c++ 在groupbox中创建矩形或在MFC中创建图片控件_Visual C++_Visual Studio 2012_Mfc - Fatal编程技术网

Visual c++ 在groupbox中创建矩形或在MFC中创建图片控件

Visual c++ 在groupbox中创建矩形或在MFC中创建图片控件,visual-c++,visual-studio-2012,mfc,Visual C++,Visual Studio 2012,Mfc,我试图在对话框的图片控制框中创建一个矩形。不过,我现在可以在点击按钮后在对话框中绘制矩形,但我需要在图片控件中进行同样的操作 我为什么要这样做? 实际上,矩形的尺寸将在运行时决定,因此,如果矩形在对话框中,它可能会覆盖下面的按钮和编辑框,我希望保持图片控制,以便即使矩形的尺寸发生变化,它也不会从图片框中出来 我正在用MFC在VC++中开发 谢谢你的帮助。谢谢!:) 您需要的技术称为子类化。您创建了一个从CStatic派生的类(我称之为CYourDerivedStatic),并在该类中为WM_PA

我试图在对话框的图片控制框中创建一个矩形。不过,我现在可以在点击按钮后在对话框中绘制矩形,但我需要在图片控件中进行同样的操作

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

我正在用MFC在VC++中开发
谢谢你的帮助。谢谢!:)

您需要的技术称为子类化。您创建了一个从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;