我用SendMessage向一个设置发一条消息,过若干时间,设置会返回一个成功的回复给我,(分别对应一个发送消息函数和一个接收消息函数)因为是串口,在这过程中不能进行其他操作,所以我想在这段时间让一个模态对话框弹出,表示当前正在等待中,现在有几个问题求助大神:
1.如果我在发送消息函数中domodel()一个弹出框了,那怎么在接收消息函数中把它销毁掉???
2.在发送消息函数中domodel()会不会阻死消息循环??
3.我尝试在辅助线程中domodel()一个弹出框,发现总是出错,有没有解决方法??
4.不用domodel(),有什么更好的方法来控制??
万分感谢,所有分送来,在线等大神救命!!!!!!!!

解决方案 »

  1.   

    用PostMessage发送信息,然后再设置成功返回时也发送一个信息回来就ok了
      

  2.   

    楼主看下这个吧
    http://hi.baidu.com/umu618/blog/item/42d503fac2e99d9758ee906b.html/cmtid/707cdd8843a5d29aa4c27286
      

  3.   

    四个问题,我知道PostMessage是发送后立刻返回,问题是一旦domodel(),父窗口的所有消息都停止了,那个消息还能不能发送到设置上,而且用SendMessage我能保证每次收到一个回复,从而判断设置是否已全部收到并处理消息
    1.如果我在发送消息函数中domodel()一个弹出框了,那怎么在接收消息函数中把它销毁掉???
    2.在发送消息函数中domodel()会不会阻死消息循环(就是发送的那个消息会不会必须等omodel()完了才发出去,而domodel()要等发了消息后收到回复再销毁,这样就卡死了)??
    3.我尝试在辅助线程中domodel()一个弹出框,发现总是出错,有没有解决方法??
    4.不用domodel(),有什么更好的方法来控制??
      

  4.   

    1、 做要用的用户界面,即对话框Dialog1,取名IDD_DIALOG1
    2、 建立对话框对应的类,如是病人的基本信息录入,取名为CBingLi,生成BingLi.h和 BingLi.cpp
    3、  建立要用的用户界面线程的类,为了与对话框的名字相照应,取名为CbingLiThread,会自动生成.h和.cpp文件,注意:在生成用户界面线程类的时候,基类要用CWinThread
    4、 在BingLiThread.h中嵌入头文件#include "BingLi.h"
    加入成员变量CBingLi BingLi;
    5、 在BingLiThread.cpp中的InitInstance()函数中写入用户界面的生成代码,即自己想要的对话框的生成代码
    BOOL CBingLiThread::InitInstance()
    {
        // TODO: perform and per-thread initialization here
        BingLi.Create(IDD_DIALOG1);
        BingLi.ShowWindow(SW_SHOW);
        m_pMainWnd = &BingLi;
     
        return TRUE;
    }
    6、 前面5步已经做好了准备,要用到用户界面线程时,写入下面语句
    CWinThread   * pThread = AfxBeginThread(RUNTIME_CLASS(CBingLiThread));
      

  5.   

    我用了模态对话框,在它的内部用EndDialog,结果模态对话框却不消失,但是其他的窗口都能切换到这个模态对话框上了!!!!!求教。