BOOL CTestdrawDlg::OnInitDialog()
{
................................
int m_left,m_top,m_right,m_bottom; CWnd* pWnd = GetDlgItem(IDC_COORD); //图片控件的ID
CDC *pDC=pWnd-> GetDC();
pWnd->GetClientRect(&rect);
pDC->Rectangle(&rect);
m_left = rect.left+10;
m_top = rect.top+10;
m_right = rect.right-10;
m_bottom = rect.bottom-20; // 绘制坐标轴
pDC->MoveTo(m_left,m_top);
// 垂直轴
pDC->LineTo(m_left,m_bottom);
// 水平轴
pDC->LineTo(m_right,m_bottom);
}程序运行后,对话框中没有图形!
我想程序生成后,对话框有图形。必须在OPaint中画吗 才有嘛
必须在OnPaint中来画
最好写到OnPaint()
AfxGetMainWnd()->UpdateWindow();以上这段代码可以加在 画图的动作之前 就可以画了
应该在OnPaint()吧
这里的一个技巧在于 我们既要在控件窗口内绘图又要防止Windows对它进行重复绘制
解决方法是采用Invalidate()/UpdateWindow()这一调用序列例如:
void CMyDialog::OnPaint()
{
CWnd* pWnd = GetDlgItem(IDC_STATIC);
CDC* pControlDC = pwnd->GetDC();
pWnd->Invalidate();
pWnd->UpdateWindow();
//添加绘图代码
pWnd->ReleaseDC(pControlDC );
}
BKEraseGround 消息里