2014-02-16 24 views
0

我想在对话框的图片控件框中创建一个矩形。但是,在点击按钮之后,我可以在对话框上绘制矩形,但是我需要在图片控件中执行相同的操作。在MFC中的组框或图片控件中创建矩形

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

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

回答

0

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

void CYourDerivedStatic::OnPaint() 
{ 
CPaintDC dc(this); 
dc.FillSolidRect(...); 
} 

为了您的自定义类附加到图片框控件首先你在对话框编辑器中右击控件和“添加变量”。这会在对话框类中为您提供一个CStatic成员变量。然后编辑“CStatic”到“CYourDerivedStatic”和#include“YourDerivedStatic.h”。

+0

我刚刚说了',然后编辑“CStatic”为“CYourDerivedStatic”和#include“YourDerivedStatic.h”。你到底什么意思?对不起,如果它的一个愚蠢的问题,但我不习惯很多编程 – vin

+0

随着“添加变量”向导创建CStatic m_pict;然后将其编辑为CYourDerivedStatic m_pict; –

相关问题