本文介绍了为什么不发生递归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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-15 13:45