本文介绍了为什么不发生递归WM_Paint MSG的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
BOOL CALLBACK AboutDlgProc (HWND hDlg, UINT message,
WPARAM wParam, LPARAM lParam)
{
PAINTSTRUCT ps;
static HWND hCtrlBlock ;
static int iColor, iFigure ;
switch (message)
{
case WM_PAINT:
PaintTheBlock (hCtrlBlock, iColor, iFigure) ;
break ;
}
}
我使用
I use
if (DialogBox (hInstance, TEXT ("AboutBox"), hwnd, AboutDlgProc))
InvalidateRect (hwnd, NULL, TRUE) ;
用MSG_proc执行一个关于dlg AboutDlgProc
Carry out a about dlg with MSG_proc AboutDlgProc
void PaintTheBlock (HWND hCtrl, int iColor, int iFigure)
{
InvalidateRect (hCtrl, NULL, TRUE) ; //May motivate a paint MSG,but why don't ?
UpdateWindow (hCtrl) ;
PaintWindow (hCtrl, iColor, iFigure);
}
在PaintTheBlock内部,为什么
Inside PaintTheBlock body,Why
InvalidateRect (hCtrl, NULL, TRUE) ; //May motivate a paint MSG,but why don't ?
UpdateWindow (hCtrl) ;
不要按预期激励另一个Paint-MSG?
感谢advcance!
Do not motivate another Paint-MSG as expected?
Thanks in advcance!
推荐答案
这篇关于为什么不发生递归WM_Paint MSG的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!