在MFC中画波纹图,需要先事先擦除旧的数据,具体的函数调用是什么?
3条回答
- threenewbee 2016-04-05 19:42关注
在Static控件上画图的方法.. 声明两个变量在view或Dialog的头文件中. CWnd* pWnd; //表示控件窗口的变量 CDC* pControlDC; //表示控件窗口的设备描述表.DC 在OnInitialUpdate()函数中进行赋值(View) pWnd=GetDlgItem(IDC_STATICRCT); pControlDC=pWnd->GetDC(); 重载OnPaint()函数. 在函数中 void CMy****View::OnPaint() { CPaintDC dc(this); // device context for painting // TODO: Add your message handler code here pWnd=GetDlgItem(IDC_PAINT_STATIC); pControlDC=pWnd->GetDC(); pWnd->Invalidate(); pWnd->UpdateWindow(); CRect rct; pWnd->GetClientRect(rct); CPen RectPen(PS_DASH,1,0x0000FF); pControlDC->SelectObject(&RectPen); //----------------------------------------------- //-- Draw //----------------------------------------------- pControlDC->Rectangle(rct.left+10,rct.top+10,rct.right-10,rct.bottom-10); pControlDC->MoveTo(0,0); pControlDC->LineTo(0,100); pControlDC->LineTo(100,100); pControlDC->LineTo(100,0); pControlDC->LineTo(0,0); RectPen.DeleteObject(); pWnd->ReleaseDC(pControlDC); } 这里有一个技巧应该注意,即在控件窗口内绘图的同时,还要防止Windows对它重复绘制.依次调用Invalidate/UpdateWindow,便可以完成这项工作.
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 c程序不知道为什么得不到结果
- ¥40 复杂的限制性的商函数处理
- ¥15 程序不包含适用于入口点的静态Main方法
- ¥15 素材场景中光线烘焙后灯光失效
- ¥15 请教一下各位,为什么我这个没有实现模拟点击
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置