但用peekmessage 应能解决不响应问题!开线程是可以,我以前是如此的,但我想问的是此处应如何写----peekmessage !! thanks

解决方案 »

  1.   

    把本窗口的句柄加上
    PeekMessage(&msg, hwnd,  0, 0, PM_REMOVE)
      

  2.   

    我之前试过的,不行。是不是peekmessage { 之后的代码有误,dispatch 之后,Close()好象没到!??
      

  3.   

    GetMessage( &msg, hWnd, 0, 0)) 
      

  4.   

    “用内存文件映射试试看 ”只是读文件快,但如果文件很大,我也需要peekmessage,防止程序界面无反应!!
      

  5.   

    if(PeekMessage(&msg,hwnd,0,0,PM_REMOVE)) 
            {
                GetMessage(&msg,hwnd,0,0);        
                DispatchMessage(&msg);
            }
    之前也试过的,但我的感觉是,消息队列的概念有误
      

  6.   

    是吗?
    hehe
    问题没解决,我也没办法!!能搞定吗,开线程当然ok啦!
      

  7.   

    应这样写:
    MSG msg;
    while(PeekMessage(&msg,NULL,0,0,PM_NOREMOVE))
      AfxGetApp()->PumpMessage();
     
            
      

  8.   

    解释一下,应插入一个循环,使每次处理完所有的消息才进行进一步的工作.mfc中最好用PumpMessage()来处理消息.由于PumpMessage会删除消息所以要在PeekMessage中指定PM_NOREMOVE
      

  9.   

    jazzrabbit(爵士兔) )
      
    AfxGetApp()->PumpMessage();也出错了,再说明一下,我的主程序在接收 UDP 数据,并在把数据写到 Logfile 中!!此处为写logfile
      

  10.   

    SuperProgMan(编程者) thanks !!