要在按钮上绘图,关键是要得到按钮的DC,即按钮的设备上下文,然后在设备描术表上绘图,就是通过它的dc指针调用绘图函数
按钮类CButton是CWnd类的派生类,CWnd类提供了一个成同函数,GetDC()来获取设备上下文,所以很容易就可以实现
void CTest6Dlg::OnButton3()
{
// TODO: Add your control notification handler code here
CWnd* pWnd = GetDlgItem(IDC_BUTTON2);//取到按钮的指针
CDC * pDC = pWnd->GetDC();//获取按钮的设备上下文指针
pDC->MoveTo(0,0);//绘图
pDC->LineTo(50,50);
}
当然,这样画的图形是不持久的,只是知道有这个GetDC(),能用来做这
void CTest6Dlg::OnButton1()
{
// TODO: Add your control notification handler code here
CDC *pDC = GetDC();//CWnd类的成员函数,取到CWnd的设备环境,实际是用this指针调用了对话框的成员函数,取到的是对话框的设备上下文
pDC->MoveTo(100,100);//在对话框的客户区画线
pDC->LineTo(200,200);
ReleaseDC(pDC);
}
评论