因为绘图的时候时间比较长,这段时间有时候会用鼠标瞎点点的,就产生了乱七八糟的消息,我想用非模态对话框都吸收掉。我原本想是在OnPreparePrinting和OnBeginPrinting之间生成模态对话框,但是绘图的过程中就不进去呀!求帮忙解决,这个是不是要用多线程编程呀?
 

解决方案 »

  1.   

    但是,在Client区域还是可以点呀,我的意思是会产生鼠标点击的消息,因为我的画图很慢,所以如果鼠标点击消息过多的话会产生消息堵塞的。。
      

  2.   

    楼主想法挺创新的:其实阻止鼠标消息
    1.可以用钩子:// 注册系统钩子 --- 用于 屏蔽 按键
    Hook_setting = (HHOOK)SetWindowsHookEx(WH_GETMESSAGE,
    (HOOKPROC)LauncherHook_setting,
    theApp.m_hInstance,
    0); 
    // 修改函数
    LRESULT CALLBACK LauncherHook_setting(int nCode, WPARAM wParam, LPARAM lParam)
    {if(nCode == HC_ACTION)   
    {   
    PMSG pMsg = (PMSG) lParam;   
    if( (pMsg->message == WM_KEYDOWN) || (pMsg->message == WM_KEYUP) )
    {   
    return true;

    }   
        
    // 让其它全局钩子获得消息
      return CallNextHookEx(Hook_setting, nCode, wParam, lParam);

    2.在PretranslateMessage中把鼠标消息全部return TRUE掉。