我的程序是基于对话框的MFC程序,上面插入了一个ActiveX控件(用来读取一些仪表的内容)X: 但是在对话框的 CMyDlg::OnInitDialog(){}范围内还不能用该控件读取正确的内容,别的地方可以,比如在一个按钮的处理函数内就可以读写。?我想在程序刚开始时就读取仪表设备的内容,是通过什么方法(消息?)知道那个控件已经初始化完毕了??如果真的是通过WM_XXX类的消息知道的话,是什么消息?是在控件生成的类里面写消息处理函数还是在对话框的类写消息处理函数?谢谢
///////////////////////////////////////////////有热心人建议我在CMyDlg::OnInitDialog(){}内调用基类CDialog的OnInitDialog(), 不过没用起作用;还有人建议我在那个控件内加上自定义的消息,在控件初始化后发送,但是我不知道哪里是初始化完毕的地方。??请教各位大虾,还有什么好招?

解决方案 »

  1.   

    CMyDlg::OnInitDialog(){}为什么不能在这儿加?
      

  2.   

    BOOL CMyDialog::OnInitDialog() 
    {
    CDialog::OnInitDialog();

    // TODO: Add extra initialization here
    // 你应该从这里开始加入自己的代码啊。
    return TRUE;  // return TRUE unless you set the focus to a control
                  // EXCEPTION: OCX Property Pages should return FALSE
    }如果还不对能不能把代码发过来看看。
    [email protected]
      

  3.   

    OnInitDialog()函数虽然已经初始化完毕,但是还没有显示出来,只是在内存中赋给数据的初值了,这是并不能进行一些正常操作,只是可以对变量进行赋值或是别的一些操作。
    像你要进行的读取操作就不可以,因为现在控件只是产生,但还没有完全显现。
    我建议可以自己定义一个读取函数,然后,在OnInitDialog()中或是别的地方进行调用。
      

  4.   

    在主窗口ONCREATE里面用POSTMESSAGE向主窗口自己发送一个自定义消息,在响应这个消息的函数里面加你想加的代码.
      

  5.   

    MFC我不熟 不过没有Active这些类似的事件的吗??