“绘制”按钮的消息响应函数如下,请在// TODO: add draw code for native data here后面添加你的代码。(5分) void CCTestDlgDlg::OnApply(){ // TODO: Add your control notification handler code here CWnd* pWndCtrl = GetDlgItem(IDC_BUTNDRAW); pWndCtrl->Invalidate(TRUE); pWndCtrl->UpdateWindow(); } 为了在“自画按钮”上进行矩形绘制,工程已利用ClassWizard类向导为对话框添加WM_DRAWITEM消息处理函数,要用实现自画按钮的绘制。请按照要求,在// TODO: add your message handler code here后面添加你的绘制代码。(5分) void CCTestDlgDlg::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct) { // TODO: Add your message handler code here UpdateData(); CDC dc; dc.Attach(lpDrawItemStruct->hDC); if (nIDCtl == IDC_BUTNDRAW){ CPen pen(PS_SOLID, m_width, m_color); CPen* pOldPen = dc.SelectObject(&pen); dc.Rectangle(m_x1, m_y1, m_x2, m_y2); dc.SelectObject(pOldPen); } dc.Detach(); CDialog::OnDrawItem(nIDCtl, lpDrawItemStruct); } 六、编程题(10分):编写一个单文档画直线的绘图程序MyLine,具体功能:在利用鼠标画线时,按住鼠标左键并拖曳,可以随鼠标移动动态地画出当前直线,当释放左键后才真正画出一条所需要的直线。要求实现窗口重绘功能,绘图需采用标准的十字光标。
已在CMyLineView.h文件中定义了相关的变量,如下所示: