我在主界面上弹出另一个对话框,我要在那个对话框时能执行主界面上的某个函数,用消息怎么写呀.
我写了一个但是不对. 请帮忙看下哪错了.
主界面头文件中定义:
// PcTestCarDlg.h : header file#define WM_READDTC (WM_USER+201)
#define WM_READDAT (WM_USER+202)//PcTestCarDlg.cpp     //主界面程序文件
BEGIN_MESSAGE_MAP(CPcTestCarDlg, CDialog)
//{{AFX_MSG_MAP(CPcTestCarDlg)
ON_MESSAGE(WM_READDTC,OnReadDtc)
ON_WM_TIMER()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()LRESULT CPcTestCarDlg::OnReadDtc(WPARAM wParam, LPARAM lParam)
{
bKeepLink=true;
OnTimer(1);             
return true;
}void CPcTestCarDlg::OnTimer(UINT nIDEvent) 
{
        switch(nIDEvent)
{
case 1: //从串口发一条命令,并读回应的使命
if(bKeepLink)
{
comdev.WriteCommBlock(Delphi[1].Data,Delphi[1].DatLen);
comdev.DataLen=0;
Sleep(1);
comdev.ReadDataResult(ReadBackData);
}
break;
}
SetTimer(1,500,NULL);
CDialog::OnTimer(nIDEvent);
}对话框程序文件:
// DtcInfo.cpp : implementation file#include "PcTestCarDlg.h"BOOL CDtcInfo::OnInitDialog() 
{
CDialog::OnInitDialog();
OnTimer(1);
return TRUE;  
}void CDtcInfo::OnTimer(UINT nIDEvent) 
{
switch(nIDEvent)
{
case 1:
//::PostMessage(::GetParent(this->GetSafeHwnd()),WM_READDTC,NULL,NULL);
::PostMessage((HWND)::AfxGetMainWnd(),WM_READDTC,NULL,NULL);
break;
}
SetTimer(1,100,NULL);
CDialog::OnTimer(nIDEvent);
}