摘要: (1) 在CYournameView(就是你的视图类,以下以CDrawLineView为例)添加了一个背景颜色变量COLORREF m_bgcolor;(2)修改这个函数:BOOL CDrawLineView::PreCreateWindow(CREATESTRUCT& cs){// TODO: Modify the Window class or styles here by modifying// the CREATESTRUCT cs cs.lpszClass=AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW,0,(HBRUSH)::GetSto 阅读全文
posted @ 2013-08-23 23:42 问笑 阅读(1769) 评论(0) 推荐(0)
摘要: 关于窗口重画的初级问题初初级问题:我在视图画的图象或者文字,当窗口改变后(包括最小化后还原,被别的窗口挡住后重新显示等)为什么不见了?这 就是窗口重绘或者说重画的问题。当窗口改变后,会产生无效区域,这个无效的区域需要重画。什么是无效区域?自己到网上搜索或者看相关资料。我这里给出一个 特殊的解释:以最小化后还原为例,假设只有一个程序在运行,窗口最小化时显示计算机桌面,并不妨假设桌面是蓝色的背景,当窗口还原时,窗口所占的这一块区 域该显示些什么东西呢?操作系统并不知道,因此,就形成一块无效区域。要是我们告诉操作系统,显示一个红方块,于是它就显示一个红方块,我们的程序过一会 想显示一个绿方块呢?同样 阅读全文
posted @ 2013-08-23 23:10 问笑 阅读(650) 评论(0) 推荐(0)
摘要: OnPaint是WM_PAINT消息的消息处理函数,在OnPaint中调用OnDraw,一般来说,用户自己的绘图代码应放在OnDraw中。OnPaint() 是CWnd的类成员,负责响应WM_PAINT消息。OnDraw()是CVIEW的成员函数,没有响应消息的功能.当视图变得无效时(包括大小的改变, 移动,被遮盖等等),Windows发送WM_PAINT消息。该视图的OnPaint 处理函数通过创建CPaintDC类的DC对象来响应该消息并调用视图的OnDraw成员函数.OnPaint最后也要调用OnDraw,因此一般在 OnDraw函数中进行绘制。The WM_PAINT message. 阅读全文
posted @ 2013-08-23 19:58 问笑 阅读(527) 评论(0) 推荐(0)