您的位置:首页 > 其它

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

2017-11-01 16:52 363 查看
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);
//...//绘图代码
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: