CPaintDC指定绘画控件?

guangmingdeshenju 2012-03-25 10:42:14
我现在在MFC对话框下结合OPENGL绘制一些基本图形,我将按钮与PICTURE控件至于
一个对话框里面的,发现一个问题:
CPaintDC(this) -》指的是当前窗口作为画布嘛,但我改成

CWnd* pWnd1;
pWnd1=GetDlgItem(IDC_PIC);
CClientDC dc(pWnd1);

效果还是一样,就是整个对话框都可以绘制图形,包括按钮区域,不是说 可以指定控件嘛,可DC并没有绑定在
PICTURE控件上?这是为什么?如何实现啊?
...全文
253 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tinary3v0 2012-03-26
  • 打赏
  • 举报
回复
我一般在使用控件DC时,使用这样的方法:
CWnd* pWnd1;
pWnd1 = GetDlgItem(IDC_PIC);
CDC* pdc = pWnd1->GetDC();

有时候也会使用GetClientDC();基本上没有用过CPaintDC
参考:
http://blog.csdn.net/liuy_yy/article/details/7192555
向立天 2012-03-26
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 guangmingdeshenju 的回复:]

就是控件本身也要指定范围啊,并不是只在这个控件上画吧
[/Quote]
是的
guangmingdeshenju 2012-03-26
  • 打赏
  • 举报
回复
就是控件本身也要指定范围啊,并不是只在这个控件上画吧
NexTor 2012-03-26
  • 打赏
  • 举报
回复
CRgn rgn;
rgn.CreateRectRgnIndirect(rect);
dc->SelectClipRgn(&rgn);
向立天 2012-03-26
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 guangmingdeshenju 的回复:]

怎么限制?不懂啊
[/Quote]
dc本来就不限制范围的
指要在窗口范围内就可用
控件自己需要通过自己的区域设置裁剪区
你要是对裁剪区不熟悉可以查阅相关资料
比如http://www.21shipin.com/html/96653.shtml
guangmingdeshenju 2012-03-26
  • 打赏
  • 举报
回复
怎么限制?不懂啊
向立天 2012-03-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 guangmingdeshenju 的回复:]

我试了哈。。还是不行。。一整个窗口都可以绘图。。我想要的效果是只是PICTURE控件可以绘图。
[/Quote]
自己用裁剪区限制一下
guangmingdeshenju 2012-03-26
  • 打赏
  • 举报
回复
我试了哈。。还是不行。。一整个窗口都可以绘图。。我想要的效果是只是PICTURE控件可以绘图。
guangmingdeshenju 2012-03-26
  • 打赏
  • 举报
回复
那你说用CDC就可以嘛?我试哈。

19,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧