我在resource.h自定义了一个消息#define WM_MY_MESSAGE (WM_USER+100),从主对话框中向子对话框发送消息。主对话框中设置一个按钮,产生子对话框。子对话框是非模态对话框。
在主对话中发送消息
CChartDlg *Chartdlg = (CChartDlg*)AfxGetApp()->GetMainWnd();
Chartdlg->SendMessage(WM_MY_MESSAGE,0,0);
在子对话框类CChartDlg中,头文件里声明消息
// Generated message map functions
//{{AFX_MSG(CChartDlg)
afx_msg void OnPaintChart(WPARAM wParam,LPARAM lParam);

//}}AFX_MSG
DECLARE_MESSAGE_MAP()
在CChartDlg.cpp中,
          BEGIN_MESSAGE_MAP(CChartDlg, CDialog)
//{{AFX_MSG_MAP(CChartDlg)
ON_MESSAGE(WM_MY_MESSAGE,OnPaintChart)
//}}AFX_MSG_MAP
         END_MESSAGE_MAP()
最后添加void CChartDlg::OnPaintChart(WPARAM wParam,LPARAM lParam)
{
   SetDlgItemText(IDC_STATIC_CUR,"123");

}
IDC_STATIC_CUR是子对话框中的控件,这里测试看能不能有响应。但是文本框里没有显示数据“123”
请大家帮帮忙,很着急

解决方案 »

  1.   

    在主对话中发送消息 
    CChartDlg   *Chartdlg   =   (CChartDlg*)AfxGetApp()-> GetMainWnd(); 
    Chartdlg-> SendMessage(WM_MY_MESSAGE,0,0); (CChartDlg*)AfxGetApp()-> GetMainWnd(); 你把主窗口强转成子窗口??
      

  2.   

    AfxGetApp()-> GetMainWnd(); 得到是主对话框窗口类的指针
      

  3.   


    哪怎样获取子对话框的指针,我是在自己定义的函数中发的消息,用动态创建子对框的指针发消息有错误left of '->SendMessageA' must point to class/struct/union。
    新人,麻烦指教。谢谢
      

  4.   

    ::SendMessage(dlg3->GetSafeHwnd(),WM_MY_MESSAGE,0,0);