MFC使用CButton的显示区域作为画布显示图像

8 篇文章 0 订阅

1.在对话框中添加一个CButton控件,然后在类向导中新建一个继承自CButton的类

class CDisplayArea : public CButton{//...}
2.在该对话框的头文件中声明一个CDisplayArea类的对象,然后和新添加的CButton按钮绑定到一起
class CNDTDisplayDlg : public CDialogEx
{
         CDisplayArea m_DispArea;
}
void CNDTDisplayDlg::DoDataExchange(CDataExchange* pDX)
{
    CDialogEx::DoDataExchange(pDX);
    DDX_Control(pDX,IDC_DispArea,m_DispArea);
}
3.将该按钮的Owner Draw属性设为True
4.添加CDisplayArea的WM_ERASEBKGND 的消息响应函数,直接返回TRUE


BOOL CDisplayArea::OnEraseBkgnd(CDC* pDC)
{
    // TODO: 在此添加消息处理程序代码和/或调用默认值
    return TRUE;
    //return CButton::OnEraseBkgnd(pDC);
}
5.重载CDisplayArea的虚函数DrawItem,不必添加代码

void CDisplayArea::DrawItem(LPDRAWITEMSTRUCT /*lpDrawItemStruct*/)
{
 
    // TODO:  添加您的代码以绘制指定项
}
6.添加CDisplayArea的WM_PAINT消息的响应函数,绘制图像的代码写在这个函数中

void CDisplayArea::OnPaint()
{
    CPaintDC dc(this);
        //...//绘图代码
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值