MFC 对话框操作

对话框有两类,模态对话框、非模态对话框。

在MFC中对资源的操作通常都是通过一个与资源相关的类来完成的。

我们创建对话框也不例外。
通过Insert选项,插入一个对话框资源。此时这个资源还不能使用,使用前提需要绑定在一个对话框对象上。
DoDataExchange这个函数主要完成对话框数据的交换和校验

//创建模态对话框
CTestDlg dlg;
dlg.DoModal();

当利用Create函数创建非模态对话框时,还需要调用ShowWindow函数将这个对话框显示出来。

如果动态创建对话框,丢失删除指针。可通过调用PostNcDestroy()函数中添加delete this语句实现。

调用DestroyWindow函数销毁对话框

动态创建按钮

CButton m_btn;
m_btn.Create("New",BS_DEFPUSHBUTTON|WS_VISIBLE|WS_CHILD,CRect(0,0,100,100),this,123);

注意,一个资源对象只能与一个资源绑定在一起。

控件大多都是继承于CWnd,所以销毁函数可以选择DestroyWindow函数。

GetWindowText() SetWindowText()获取控件上显示的文本

GetDlgItem()函数获得控件对象的指针

静态文本空间在默认情况下不发送通告消息

为了使一个静态文本控件能够响应鼠标消息,那么需要进行两个特殊的步骤:第一步,改变ID,第二步,在它的属性对话框中选择Notify选项。

atoi函数itoa函数

GetDlgItemText() SetDlgItemText()获得控件的文本和设置控件的文本。

GetDlgItemInt() SetDlgItemInt()获得控件的数值和设置控件的数值

将控件关联成员变量相关联,利用UpdateDate完成对话框数据交换,取数据用true,初始化控件内容用false

注意DDV_ 和DDX_之间的差别

DDV_数据检验函数 DDX数据交换函数

关联控件类型的变量,此变量代表的就是控件本身,可完成m_edit1.GetWindowText()的调用

利用SendMessage函数,发送WM_SETTEXT 和WM_GETTEXT消息

SendDlgItemMessage() GetDlgItemMessage()

EM_开头是编辑框控件消息

CRect中的IsRectEmpty() 和 IsRectEmpty()前者返回非零值说明其中宽度或高度为零或为负值,后者四个坐标都为0返回非零值。

GetWindowRect() SetWindowRect()
SetWindowPos设置对话框的大小

对话框上面的空间完成之后将发送一个WM_INITDIALOG消息

所有窗口消息都伴随一个窗口句柄

利用SetWindowLong()可以修改窗口过程函数

获得窗口句柄GetWindow() GetNextWindow()

SetFocus获得焦点

GetNextDlgTabItem函数返回控件前面或后面的一个具有WS_TABSTOP风格的控件

在MFC中,默认情况下,当在对话框窗口中按下回车键时,会调用对话框的默认按钮的响应函数。

GetFocus()
GetNextWindow()
SetFocus()

你可能感兴趣的:(对话框)