2012毕设论文 - 基于VC的多线程通信程序设计 联系客服

发布时间 : 星期二 文章2012毕设论文 - 基于VC的多线程通信程序设计更新完毕开始阅读22e1b2c9a1c7aa00b52acba0

mNum!=0 && NULL==pDlg->m_pWnd[m_AimNum-1])) { AfxMessageBox(\消息发送对象错误!\ return;

}

else if(\ { AfxMessageBox(\消息内容不能为空!\ return;

} else {

if(0 == m_AimNum) { m_MsgShowStr += \向主窗口发送消息:\ } else {

m_MsgShowStr += \向窗口\

m_MsgShowStr += m_AimNum+'0';

m_MsgShowStr += \发送消息:\ \ }

// 启动线程

AfxBeginThread((AFX_THREADPROC)SendMsgThreadFunc, NULL);

pDlg->m_MsgFrom = m_Num;

pDlg->m_AimNum = m_AimNum; pDlg->m_ReceiveMsgStr = m_MsgTextStr;

}

UpdateData(false);

}

4. 添加线程处理函数

a.在ChildDialog.h文件中添加线程处理函数声明:

\ 26

DWORD SendMsgThreadFunc(LPVOID pParam); b.在ChildDialog.cpp文件中添加线程处理函数: DWORD SendMsgThreadFunc(LPVOID pParam) { }

CCommunicationDlg *pDlg; //获得主窗口指针

pDlg = (CCommunicationDlg*)AfxGetApp()->m_pMainWnd; //向主窗口发送WM_CHILDDLG_SENDMSG自定义消息 pDlg->PostMessage(WM_CHILDDLG_SENDMSG,0,0); return 0;

3. 4 程序运行结果

程序编译运行后,弹出如图3-10所示的运行主界面。

图3-10 程序主界面

27

3. 4. 1 窗口的创建

a.点击“新建窗口”按钮,弹出如图3-11所示的子对话框窗口。

图3-11 子对话框窗口

b.继续点击“新建窗口”按钮,可继续创建子窗口,最多可创建6个子对话框窗口,如图3-12所示。

28

图3-12

c.此时若继续点击“新建窗口”按钮,则会弹出如图3-13所示的警告对话框。

图3-13

d.关闭子窗口是,在主窗口上显示的当前子窗口数也会随之变化。如图3-14所示。

图3-14

3. 4. 2 窗口的通信

( 1 ) 子窗口与主窗口间的通信

29