首先建立两个子对话框类:CPage1,和CPage2; 在主对话框类CDlgMy中声明三个变量:
CPage2 m_page2;
CPage1 m_page1;
CPropertySheet m_sheet; 在主对话框类CDlgMy的初始化函数中加入如下代码:
m_sheet.AddPage(&m_page1);
m_sheet.AddPage(&m_page2);
m_sheet.Create(this, WS_CHILD | WS_VISIBLE, WS_EX_CONTROLPARENT); 主对话框运行的时候,就会显示一个包含两页的属性页。 在对话框类CDlgMy中接收到一个消息,消息内容已经在buf中了
void CDlgMy::getMsg(char * buf)
{//在这里怎么把消息传给CPage1
}
子对话框类CPage1当中添加了一个按钮,响应函数如下:
void CPage1::dealWithMsg(char * pbuf)
{
// 把收到的消息经过处理后,显示到属性页上
} 请问,在getMsg函数中怎么把消息传给dealWithMsg?为什么在getMsg函数中m_page1.dealWithMsg(buf);会使程序死掉,该怎么解决?多谢你们了
CPage2 m_page2;
CPage1 m_page1;
CPropertySheet m_sheet; 在主对话框类CDlgMy的初始化函数中加入如下代码:
m_sheet.AddPage(&m_page1);
m_sheet.AddPage(&m_page2);
m_sheet.Create(this, WS_CHILD | WS_VISIBLE, WS_EX_CONTROLPARENT); 主对话框运行的时候,就会显示一个包含两页的属性页。 在对话框类CDlgMy中接收到一个消息,消息内容已经在buf中了
void CDlgMy::getMsg(char * buf)
{//在这里怎么把消息传给CPage1
}
子对话框类CPage1当中添加了一个按钮,响应函数如下:
void CPage1::dealWithMsg(char * pbuf)
{
// 把收到的消息经过处理后,显示到属性页上
} 请问,在getMsg函数中怎么把消息传给dealWithMsg?为什么在getMsg函数中m_page1.dealWithMsg(buf);会使程序死掉,该怎么解决?多谢你们了
void CPage1::dealWithMsg(char * pbuf)
{
// 都没代码哪知道怎么死哇~
}
SendMessage(ChildWnd.GetSafeWnd(), WM_MESSAGEID, wParam, lParam);按你的方式,你已经得到消息内容了,那你直接m_page1.dealWithMsg(buf);应该就可以了,为什么会死掉你就要检查代码了
void CDlgMy::getMsg(char * buf)
{
ASSERT(buf);
m_page1.dealWithMsg(buf);
}
或者
void CPage1::dealWithMsg(char * pbuf)
{
ASSERT(pbuf);
...... //确定你处理代码时没问题
}
CPage2 m_page2;
CPage1 m_page1;
CPropertySheet m_sheet; 在主对话框类CDlgMy的初始化函数中加入如下代码:
m_sheet.AddPage(&m_page1);
m_sheet.AddPage(&m_page2);
m_sheet.Create(this, WS_CHILD | WS_VISIBLE, WS_EX_CONTROLPARENT); 主对话框运行的时候,就会显示一个包含两页的属性页。 在对话框类CDlgMy中接收到一个消息,消息内容已经在buf中了
void CDlgMy::getMsg(char * buf)
{//在这里怎么把消息传给CPage1
m_page1.dealWithMsg(buf);
} 属性页类CPage1中的响应函数如下:
void CPage1::dealWithMsg(char * pbuf)
{
CString str;//字符串
UserMsg_T * pUserMsg;
pUserMsg = (UserMsg_T *)pbuf; //把收到的消息传给一个结构体,这个结构体里面有一些变量;其中一个是strName,她也是字符串类型
str = pUserMst.strName; //我这里只列出了其中一个变量
GetDlgItem(IDC_EDIT1).SetWindowText(str);//IDC_EDIT1是对象m_page1页面上的一编辑框控件,我把收到的消息经过处理后,在编辑框上
显示,调试运行时程序就在这里崩掉了
} 请问,在getMsg函数中怎么把消息传给dealWithMsg?为什么在getMsg函数中m_page1.dealWithMsg(buf);会使程序崩掉,该怎么解决?多谢你们了