我用下面的代码在某个窗口边上画一个方框,
实际上绘在桌面的DC上
CDC* pdc=new CDC;
HDC hdc=GetDC(NULL);
pdc->Attach(hdc);
……
得到这个窗口的rect,
pdc->Rectangle(Clientrect);
……
然后用任何方法都擦不掉
包括对这个窗口,窗口的parent和桌面使用
Invalidate ,InvalidateRect
但是用另一个窗口遮挡一下这个窗口,然后放开,就把方框擦掉了
怎样才能擦除我画的东西?
实际上绘在桌面的DC上
CDC* pdc=new CDC;
HDC hdc=GetDC(NULL);
pdc->Attach(hdc);
……
得到这个窗口的rect,
pdc->Rectangle(Clientrect);
……
然后用任何方法都擦不掉
包括对这个窗口,窗口的parent和桌面使用
Invalidate ,InvalidateRect
但是用另一个窗口遮挡一下这个窗口,然后放开,就把方框擦掉了
怎样才能擦除我画的东西?
解决方案 »
- 非模态对话框不能创建多个
- opencv里面的中值滤波函数
- VC调用PB的参数传递
- SQLConfigureDataSource怎么设置用户名和密码
- 发送菜单点击消息,没任何反映,谁碰到过这种现象啊
- 视频捕捉时用回调函数取得的LPVEDEOHDR的数据如何以视频流方式发送?
- 初学者提问一些简单问题!!!
- 谁有UDP通讯的例子给我一个好吗?
- 在xp上用MFC怎么模拟管理员权限运行程序
- 256色灰度化-256色图像增强-如何将图像另存为
- WinApp::OnPaint()\WinMainFrame::OnPaint()\WinView::OnPaint()\WinView::OnDraw()有什么区别?
- 用过minifmod的请进
我希望把鼠标移动到一个窗口或者控件上的时候
在窗口或者控件周围画一个方框,鼠标移开以后把方框擦掉
我是在桌面dc上绘图,用xor的画笔,
每次进入一个窗口和离开一个窗口各绘制一次,这样把它擦掉
可是有一种情况会出问题:
窗口a和b部分重叠
窗口a在前,处于激活状态,鼠标在b上移动(b仍未激活),在b周围绘方框
也就是部分绘在a上了,然后直接把鼠标移动到a中,
这时候a中的线条无论怎样都擦不去了,只有把a遮挡一下在显示才能恢复正常