1.ValidateRect()函数的疑问
The BeginPaint function automatically validates the entire client area. Neither the ValidateRect nor ValidateRgn function should be called if a portion of the update region must be validated before the next WM_PAINT message is generated. The system continues to generate WM_PAINT messages until the current update region is validated.
这里说如果一部分更新区必须有效的话,在下一个WM_PAINT信息生成前,ValidateRect和ValidateRgn函数都不应被调用,是指什么情况啊?
E文不好,看不懂了,高手能否举个例子啊。
还有,这个无效,有效是什么意思啊,搞不懂。
如果无效一个矩形区,系统就会发WM_PAINT消息,然后BeginPaint函数把整个区域都变成有效,然后就是画图了,那就是说必须有效的区域才能画图?2.英寸的意思?
小字体是96象素/英寸,大字体是120象素/英寸
这里的英寸指的是什么尺寸啊?在屏幕上实际量到的尺寸,还是???
这样的话,在小字体情况下,一个象素是1/96英寸大小了,而大字体情况下一个象素是1/120英寸大小
根据msdn里说,字是由点(point)组成的,每个点的大小为1/72英寸(这里的英寸是什么意思?)
一般来说,一个字有10点组成,也就是说一个字的大小就是10/72英寸
然后再转换成象素,小字体是96*10/72象素,大字体是120*10/72象素,这样就对了,但是英寸是什么意思呢?
不太明白啊?高手能否指点一下?
The BeginPaint function automatically validates the entire client area. Neither the ValidateRect nor ValidateRgn function should be called if a portion of the update region must be validated before the next WM_PAINT message is generated. The system continues to generate WM_PAINT messages until the current update region is validated.
这里说如果一部分更新区必须有效的话,在下一个WM_PAINT信息生成前,ValidateRect和ValidateRgn函数都不应被调用,是指什么情况啊?
E文不好,看不懂了,高手能否举个例子啊。
还有,这个无效,有效是什么意思啊,搞不懂。
如果无效一个矩形区,系统就会发WM_PAINT消息,然后BeginPaint函数把整个区域都变成有效,然后就是画图了,那就是说必须有效的区域才能画图?2.英寸的意思?
小字体是96象素/英寸,大字体是120象素/英寸
这里的英寸指的是什么尺寸啊?在屏幕上实际量到的尺寸,还是???
这样的话,在小字体情况下,一个象素是1/96英寸大小了,而大字体情况下一个象素是1/120英寸大小
根据msdn里说,字是由点(point)组成的,每个点的大小为1/72英寸(这里的英寸是什么意思?)
一般来说,一个字有10点组成,也就是说一个字的大小就是10/72英寸
然后再转换成象素,小字体是96*10/72象素,大字体是120*10/72象素,这样就对了,但是英寸是什么意思呢?
不太明白啊?高手能否指点一下?
你在处理WM_PAINT时, 可以用GetDC 获得DC,然后用这个DC画图, 但系统的标记未设置. 系统仍然会产生WM_PAINT, 你的窗口会不断的画啊画画到死为止. 在 DefWindowProc 这个函数内部, 它的操作很简单:
BeginPaint
EndPaint
return 0;
能否请您说的详细点?
你想想无效的产生原因,是因为A窗口的部分或全部被B窗口挡住,有一个事件后(A窗口被激活,或B窗口销毁等)A窗口原来被挡住不可见的部分变为可见,它需要重新画出那部分. 那部分就成为无效.