2013年12月9日
摘要: 在窗口刷新和绘制的过程中,常常需要用到窗口刷新函数。一般用于窗口图形刷新的函数有:UpdateWindows()、Invaldate()、InvaldateRect()。先说UpdateWindows(),当调用这个函数的时候,会立即让当前的窗口失效,然后对整个窗口立即进行重绘。UpdateWindows()函数调用的时候直接将OnPaint调用到目标窗口,使目标窗口立即进行重绘。而Invaldate()函数的调用则不会立即引起窗口重绘,因为Invaldate()函数是通过调用OnPaint函数来进行窗口绘制的,而OnPaint函数在消息队列中的处理优先级较低。所以调用Invaldate函数则 阅读全文
posted @ 2013-12-09 15:32 Yogurshine 阅读(1178) 评论(0) 推荐(0) 编辑
摘要: 为什么在CView类中可以对ON_CHAR进行相应,添加消息处理函数onchar就可以了,但是在CDialog中要对ON_CHAR相应,直接添加不行? CView相当于Text控件,你可以在Text控件里输入文字,因为Dialog对象没有办法直接获取到一个焦点(Focus),就象你没有办法单击某应用程序标题栏,然后改变他的标题。需要重写PreTranslateMessage函数,拦截消息,你写的代码都不用改变,加上下面的BOOL CMyDialog::PreTranslateMessage(MSG* pMsg) { if(pMsg-> == WM_CHAR) OnChar((TCHAR) 阅读全文
posted @ 2013-12-09 15:24 Yogurshine 阅读(971) 评论(0) 推荐(0) 编辑