阅读>心得(1)
2007-01-19 00:02
190 查看
昨天看到第6章,在刚开始看者本书的时候,总感觉这本书不太适合象我这样的入门读者,感觉作者讲的有些泛泛而谈,关于一些概念,并没有讲的很仔细.不知别人是否有这感觉.但是我已经开始阅读了,那就看一段时间再说了.
昨天看到一段代码:
void CMyDialog::OnPaint()
{
CWnd *pWnd = GetDlgItem(IDC_STATIC1);
CDC *pControlDC = pWnd->GetDC();
pWnd->Invalidate();
pWnd->UpdateWindow();
pControlDC->SelectStockObject(BLACK_BRUSH);
pControlDC->Rectangle(0,0,10,10);
pWnd->ReleaseDC(pControlDC);
}
对这段代码有些迷惑,其实还是自己对于VC的绘图机制有些迷惑,于是上csdn问了一下,还真有高手一针见血的指出问题实质,让我有点恍然大悟的感觉.
上面,是对话框的onpaint函数,这个函数是在对话框受到wm_paint消息时的处理函数 ,而在窗口创建以及重绘的时候,都会受到wm_paint消息.上面这段代码是对窗口内的一个控件进行重绘,同时不会对窗口内的其他区域重绘.这个功能的实现是通过,调用这个控件自身独有的onpaint函数来重绘的,所以首先得到控件的句柄 pWnd,然后进行invalidate实现重绘.另外上面的操作都是对控件的操作,因此,和一般对话框的onpaint函数区别就是,在各个操作前面加上了控件的一个句柄 pWnd,使得所有操作是对控件而非整个窗口.
呵呵,现在好像明白了,控件也是一个窗口,同样可以有onpaint函数
昨天看到一段代码:
void CMyDialog::OnPaint()
{
CWnd *pWnd = GetDlgItem(IDC_STATIC1);
CDC *pControlDC = pWnd->GetDC();
pWnd->Invalidate();
pWnd->UpdateWindow();
pControlDC->SelectStockObject(BLACK_BRUSH);
pControlDC->Rectangle(0,0,10,10);
pWnd->ReleaseDC(pControlDC);
}
对这段代码有些迷惑,其实还是自己对于VC的绘图机制有些迷惑,于是上csdn问了一下,还真有高手一针见血的指出问题实质,让我有点恍然大悟的感觉.
上面,是对话框的onpaint函数,这个函数是在对话框受到wm_paint消息时的处理函数 ,而在窗口创建以及重绘的时候,都会受到wm_paint消息.上面这段代码是对窗口内的一个控件进行重绘,同时不会对窗口内的其他区域重绘.这个功能的实现是通过,调用这个控件自身独有的onpaint函数来重绘的,所以首先得到控件的句柄 pWnd,然后进行invalidate实现重绘.另外上面的操作都是对控件的操作,因此,和一般对话框的onpaint函数区别就是,在各个操作前面加上了控件的一个句柄 pWnd,使得所有操作是对控件而非整个窗口.
呵呵,现在好像明白了,控件也是一个窗口,同样可以有onpaint函数
相关文章推荐
- 黑马程序员 心得---> java的阶段学习 >希望能对新人有帮助
- <Xen虚拟化技术>阅读笔记---第三章 Xen信息页
- Axel源码阅读笔记<二>
- Notepad++使用心得和特色功能介绍 -> notepad/ultraedit的最好的替代品
- <转>Android ORM 框架子 greenDao 使用心得
- JDBC心得体会-->总结
- jsp编程心得->数据库操作
- MarkdownPad使用心得小窍门--> 开源code编辑工具
- Servlet Filter(过滤器)----->张国亮总结心得第一季
- linux 学习心得笔记<初级>第二篇
- linux 学习心得笔记<primary> 第四篇
- iOS AutoLayout阅读笔记2------>子视图固定比例分割父视图的简单实现
- JSP遍历所有数据标签与转义标签 --->张国亮总结心得第五季(完结篇)
- Java API>java.lang.Class阅读的心得——Class.asSubclass分析
- java深度历险>-阅读笔记
- 研究心得------->CPU信息的获得,比较全面的。
- 会话管理之Session--->张国亮--->总结心得第二季
- 阅读<反欺骗的艺术>思考
- 研究心得------->CPU信息的获得,比较全面的。
- linux 学习心得笔记<初级>第三篇