在对话框中进行消息映射

2016-02-19 12:19 6 1 收藏

今天图老师小编要向大家分享个在对话框中进行消息映射教程,过程简单易学,相信聪明的你一定能轻松get!

【 tulaoshi.com - 编程语言 】

利用对话框的一个好处是可以利用ClassWizard对对话框中各个控件产生的消息进行映射,ClassWizrd可以列出各种控件可以使用的消息,并能自动产生代码。在本节中我们以一个例子来讲解如何在对话框中对子窗口消息进行映射同时还讲解如何对对话框中的子窗口进行初始化。

首先我们产生编辑好一个对话框,如图,

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

在对话框中使用的控件和ID号如下表:

ID

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

类型

IDC_RADIO_TEST_1

圆形按钮

IDC_RADIO_TEST_2

圆形按钮

IDC_BUTTON_TEST

按钮

IDC_CHECK_TEST

检查按钮

IDC_TREE_TEST

树形控件

IDC_LIST_CTRL

List Ctrl

IDC_TAB_CTRL

Tab Ctrl

IDC_LIST_TEST

列表框

IDC_COMBO_TEST

组合框

IDC_EDIT_TEST

输入框

首先我们需要在对话框的OnInitDialog()函数中对各个控件进行初始化,这里我们使用CWnd* GetDlgItem( int nID )来通过ID号得到子窗口指针。(类似的函数还有UINT GetDlgItemInt( int nID, BOOL* lpTrans = NULL, BOOL bSigned = TRUE ) 通过ID号得到子窗口中输入的数字,int GetDlgItemText( int nID, CString& rString ) 通过ID号得到子窗口中输入的文字)。代码如下:

BOOL CMy54_s1Dlg::OnInitDialog()

{

         CDialog::OnInitDialog();

         /*添加初始化代码*/

         //初始化输入框

         ((CEdit*)GetDlgItem(IDC_EDIT_TEST))-SetWindowText("this is a edit box");

                        

来源:http://www.tulaoshi.com/n/20160219/1600599.html

延伸阅读
获取静态控件文本的方法:GetDlgItem函数获得对话框中控件的指针,然后调用GetWindowText获得文本。注意:静态控件的属性必须将Notify选为可能。同理:SetWindowText可以指定文本。 获取编辑框内容:GetDlgItem(ID)-GetWindowText(); 字符内容转换为数值:atoi()把字符串转换为数值;同理:数字到字符串itoa(); GetDlgItemText(ID)可以完成...
标签: Web开发
    1.将下面一段代码插入head与/head之间: script function rusure() {  question = confirm("确实要去进入吗?")  if (question !="0") { window.open("","测试公告窗口","width=340,height=163,toolbar=0,status=0,menubar=0,resize=0"); } } /script     2.在链接标签内加入onclick()语句...
无模式对话框与有模式对话框不同的是在创建后其他窗口都可以继续接收用户输入,因此无模式对话框有些类似一个弹出窗口。创建无模式对话框需要调用 BOOL CDialog::Create( UINT nIDTemplate, CWnd* pParentWnd = NULL );之后还需要调用 BOOL CDialog::ShowWindow( SW_SHOW);进行显示,否则无模式对话框将是不可见的。相关代码如下: void CYo...
(1) 参数 typedef struct { DWORD lStructSize; HWND hwndOwner; HWND hInstance; COLORREF rgbResult; COLORREF * lpCustColors; DWORD Flags; LPARAM lCustData; LPCCHOOKPROC lpfnHook; LPCTSTR lpTemplateName; } CHOOSECOLOR, *LPCHOOSECOLOR; (2) API...
使用有模式对话框时在对话框弹出后调用函数不会立即返回,而是等到对话框销毁后才会返回(请注意在对话框弹出后其他窗口的消息依然会被传递)。所以在使用对话框时其他窗口都不能接收用户输入。创建有模式对话框的方法是调用CDialog::DoModal()。下面的代码演示了这种用法: CYourView::OnOpenDlg() {       ...