关于MFC窗口尺寸变化重画问题

为什么我按最大化后,哪个小圆圈没有消失,绘图操作我是在OnPaint里面处理的

第1个回答  2014-07-08
窗口样式加上CS_HREDRAW和CS_VREDRAW追问

这是用MFC创建的对话框不用加了吧?及时我在PreCreateWindow里面加了还是不行

追答

一般这是由于没有及时刷新导致,除了窗口样式,也有可能是你没有正确响应WM_ERASEBKGND,或者处理背景不完善。把代码发出来看看吧

追问

我开始没有响应WM_ERASEBKGND。现在我响应了WM_ERASEBKGND,并在里面加入,
Invalidate();
return TRUE;
就对了。但感觉这是一个死循环,会一直调用WM_ERASEBKGND

追答

你在WM_ERASEBKGND重新绘制下背景(即用黑色填充背景),然后返回TRUE就可以了

本回答被提问者采纳
第2个回答  2014-07-08
猜测你的OnEraseBkgnd返回TRUE了

MFC 对话框的尺寸大小如何确定的
MFC 对话框的尺寸大小使用MoveWindow,意思是改变指定窗口的位置和大小。函数功能:改变指定窗口的位置和大小.对顶窗口来说,位置和大小取决于屏幕的左上角;对子窗口来说,位置和大小取决于父窗口客户区的左上角.对于Owned窗口,位置和大小取决于屏幕左上角.函数原型:BOOL MoveWindow( HWND hWnd, int X, i...

在MFC怎么中设置窗口大小和位置?
SWP_NOREDRAW 不重画变化。如果设置了这个标志,则不发生任何种类的变化。这适用于客户区、非客户区(包括标题和滚动条)以及被移动窗口覆盖的父窗口的任何部分。当这个标志被设置的时候,应用程序必须明确地无效或重画要重画的窗口和父窗口的任何部分。SWP_NOREPOSITION 与SWP_NOOWNERZORDER相同。SWP...

mfc 想让窗体不断重画 程序就死 画面定格不动了
你应该把画图的函数放在响应ON_PAINT这个消息的函数里调用,就可以了。这样系统在每次重绘窗口的时候会自动调用那个重画的函数对界面进行刷新

MFC中如何用鼠标拖拽窗口边缘改变大小
如果是使用对话框,在对话框属性里面设置就可以.

关于MFC 的重画机制 求大神解答 在线等 求救
首先,MFC但文档的工程,系统会带一个这样的 OnDraw(CDC* pDC)你确定你写的OnDraw没有覆盖掉系统的。另外,你可以在OnDrow函数的开头MessageBox或者其他方式输出一下,看Invalidate之后该函数是否被调用到了。如果都调用到了,再检查OnDrow里面的逻辑是否正确的 ...

mfc的一些疑问
如果要立即重画,用UpdateWindow( ).调用UpdateWindow函数可使WM_PAINT被直接发送到目标窗口,从而导致窗口立即重绘。2.定义一个区域,当鼠标移动到该区域时使用SetCursor(AfxGetApp()->LoadCursor(图标ID));当然首先要添加鼠标光标(Cursor)文件(*.cur)到工程中,然后需要为应用程序添加WM_SETCURSOR消息 用...

用MFC如何高效地绘图
比如:清楚屏幕时间为1s绘图时间也是为1s,这样在10s内的连续重画中就要闪烁5次;如果清楚屏幕时间为1s不变,而绘图时间为9s,这样10s内的连续重画只会闪烁一次。这个也可以试验,在OnDraw(CDC *pDC)中这样写: for(int i=0;i<100000;i++){pDC->MoveTo(0,i);pDC->LineTo(1000,i);} 呵呵,...

MFC里的DC是什么意思?怎么使用DC?最好能举个例子说明一下?
4、关于 WM_PAINT事件 系统会在多个不同的时机发送WM_PAINT消息:当第一次创建一个窗口时,当改变窗口的大小时,当把窗口从另一个窗口背后移出时,当最大化或最小化窗口时,等等,这些动作都是由系统管理的,应用只是被动地接收该消息,在消息处理函数中进行绘制操作;大多数的时候应用也需要能够主动引发窗口中的绘制...

VC++6.0 窗口创建成功 但是不能重绘怎么办
1、启动vc++6.0。2、在文件菜单里单击新建。3、在弹出的窗口里单击MFC AppWizard (exe)。4、在右边的工程名称里输入程序名,例如firstc。5、单击确定,在弹出的窗体里选择基本对话框,单击完成,单击确定。6、这时已经生成了一个窗体,两个按钮的窗口程序,可以运行。7、在这个窗体上继续添加添加需要...

在MFC中,OnPaint中调用OnDraw函数,这个过程被封装了,求剖析!
MFC提供了CPaintDC类和CWindwoDC类来实时的响应,而CPaintDC支持重画。当视图变得无效时(包括大小 的改变,移动,被遮盖等等),Windows 将 WM_PAINT 消息发送给它。该视图的OnPaint 处理函数通过创建 CPaintDC 类的DC对象来响应该消息并调用视图的 OnDraw 成员函数。通常我们不必编写重写的 OnPaint 处理...

相似回答
大家正在搜