WEB开发网
开发学院软件开发VC 无模式对话框的创建与使用 阅读

无模式对话框的创建与使用

 2010-07-06 20:43:41 来源:WEB开发网   
核心提示:在头文件中添加函数定义afx_msg LONG OnDelDlgMsg(WPARAM wP,LPARAM lP);添加消息映射代码ON_MESSAGE(WM_DELETE_DLG,OnDelDlgMsg)/*实现消息处理函数*/LONG CMy53_s1View::OnDelDlgMsg(WPARAM wP,LPARA

在头文件中添加函数定义

afx_msg LONG OnDelDlgMsg(WPARAM wP,LPARAM lP);

添加消息映射代码

ON_MESSAGE(WM_DELETE_DLG,OnDelDlgMsg)/*实现消息处理函数*/
LONG CMy53_s1View::OnDelDlgMsg(WPARAM wP,LPARAM lP)
{
delete (CTestDlg2*)wP;
return 0;
}
/*创建对话框*/
void CMy53_s1View::OnTest2()
{
CTestDlg2 *dlg=new CTestDlg2(this);
dlg->Create(IDD_TEST_DLG_2);
dlg->ShowWindow(SW_SHOW);
}

在这种方法中我们利用消息来进行通知,在Windows系统中利用消息进行通知和传递数据的用法是很多的。 同样无模式对话框的另一个作用还可以用来在用户在对话框中的输入改变时可以及时的反映到其他窗口。下面的代码演示了在对话框中输入一段文字,然后将其更新到视图的显示区域中,这同样也是利用了消息进行通知和数据传递。

/*在对话框中取出数据,并向其他窗口发送消息和数据,将数据指针作为一个参数发送*/
void CTestDlg2::OnCommBtn()
{
char szOut[30];
GetDlgItemText(IDC_OUT,szOut,30);
m_pParent->SendMessage(WM_DLG_NOTIFY,(WPARAM)szOut);
}

在消息接收窗口中映射消息处理函数

ON_MESSAGE(WM_DLG_NOTIFY,OnDlgNotifyMsg)/*在视图中绘制出字符串 m_szOut*/
void CMy53_s1View::OnDraw(CDC* pDC)
{
CMy53_s1Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
pDC->TextOut(0,0,"Display String");
pDC->TextOut(0,20,m_szOut);
}
/*处理通知消息,保存信息并更新显示*/
LONG CMy53_s1View::OnDlgNotifyMsg(WPARAM wP,LPARAM lP)
{
m_szOut=(char*)wP;
Invalidate();
return 0;
}

希望通过以上的讲解,理解无模式对话框的创建和使用过程.

上一页  1 2 

Tags:模式 对话框 创建

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接