【问题标题】:Create rectangle in groupbox or picture control in MFC在 MFC 中的 groupbox 或图片控件中创建矩形
【发布时间】:2014-02-16 11:39:08
【问题描述】:

我正在尝试在对话框的图片控件框中创建一个矩形。但是,我现在可以在单击按钮后在对话框上绘制矩形,但我需要在图片控件中执行相同的操作。

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

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

【问题讨论】:

    标签: visual-c++ visual-studio-2012 mfc


    【解决方案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;
    猜你喜欢
    • 2013-08-02
    • 1970-01-01
    • 2015-07-11
    • 1970-01-01
    • 2011-07-01
    • 2013-07-01
    • 2012-01-23
    • 2011-06-05
    • 1970-01-01
    相关资源
    最近更新 更多