一、实验目的和要求
1、掌握什么是消息映射,了解在应用程序内部消息映射的过程。
2、熟悉使用类向导为鼠标消息添加消息响应函数。
3、熟悉添加自定义消息的具体步骤,并能够灵活使用标准控件。
二、实验环境
Windows7 ;VC++6.0
三、实验内容与过程
实验内容(一):
创建一个单文档的应用程序 TestOne,找到有关消息映射的代码。
实验内容(二):
创建一个基于单文档的应用程序 TestTwo,然后使用类向导添加鼠标右键单击的消息响应函数。
运行结果如下图所示。
实验内容(三):
创建一个基于单文档的应用程序 TestThree,然后使用自定义一条消息,并添加该消息的响应函数。
该消息响应函数用于将输入的两个字符串进行合并,并显示在客户区。
运行结果如下图所示。
四、实验结果与分析
实验一:
实验二:
代码:
void CTestTwoView::OnRButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
AfxMessageBox("这是利用类向导添加的右击消息");
CView::OnRButtonDown(nFlags, point);
}
流程图:
实验三:
主要代码:
void CMyDialog::OnOK()
{
// TODO: Add extra validation here
UpdateData(TRUE);
char *str1=new char[50];
strcpy(str1,m_edit1);
char *str2=new char[50];
strcpy(str2,m_edit2);
CMainFrame *pMainFrm=(CMainFrame*)AfxGetMainWnd();
CView *pView = pMainFrm->GetActiveView();
pView->PostMessage(WM_MYMSG,(unsigned int)str1,(unsigned int)str2);
}
void CTextThreeView::OnDraw(CDC* pDC)
{
CTextThreeDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
pDC->TextOut(100,100,"字符串1:"+m_str1);
pDC->TextOut(100,150,"字符串2:"+m_str2);
pDC->TextOut(100,250,"合并字符串:"+m_str1+m_str2);
}
流程图: