1、对话框创建方法有两种:
1)一种是通过添加资源的方法,即:打开资源视图->添加对话框资源->设置ID->使用类向导为对话框关联对话框类(Ctrl+w)
2)另一种为利用类视图向导方法:类视图->右击根节点->选择new form->修改名称->完成创建!
2、对话框分为模态对话框和非模态对话框:
1)模态对话框:模态对话框中用户不关闭该对话框时,将不能切换到程序的其他对话框当中。
创建方法:为相应控件添加消息响应函数->在响应函数文件中添加模态对话框的头文件,如#include "Book.h"->"响应函数"中添加代码->CBook Book; Book.DoModal();或者 CBook *pBook=new CBook(); pBook->doModal(); delete pBook; (采用new构建对象可以通过delete释放对象)
2)非模态对话框:即在未关闭期间,可以切换到程序的其他对话框当中。
创建方法:在主窗口头文件中添加非模态对话框头文件->主对话框类中定义一个非模态对话框类的成员变量,如CBook m_Book;->在对应控件的消息响应函数中添加代码:
if(IsWindow(m_Book.m_hWnd))
{
m_Book.Create(IDD_BOOKDLG,NULL);
}
m_Book.ShowWindow(SW_SHOW);
3、调整对话框控件的Tab键顺序:ctrl+D;
4、快速查看对话框效果:Ctrl+T。
5、利用数据交换访问控件文本数据,UpdateData();使用方法:
UpdateData(FALSE); //将变量更新到窗口当中
UpdateData(TRUE); //将窗口中数据更新到变量当中
6、添加对话框成员和成员函数的方法:
添加成员和成员函数:分为手动添加和利用向导添加方式:
(1):手动添加:向对话框中添加成员和成员函数与向普通类添加成员和成员函数方法一样,如:想对话框中添加一个整型变量,则可以在对话框类定义处添加即可。向对话框类中添加成员函数可以在类定义处(头文件部分)声明一个函数原型,然后在类的实现部分(源文件)编写函数的实现部分。
(2):利用类向导:在对话框的工作区中用鼠标右键单击对话框类,在弹出的快捷菜单中选择add member variable 或者 add member function命令。
7、添加消息处理函数:
1):通过类向导添加消息响应函数。
2):手动添加消息响应函数:
首先要定义一个消息常量值。对于自定义的消息常量值,为了防止与系统消息值相同,可以以WM_USER消息为基础递增。如:
#define CM_POSCHANGE WM_USER+1
然后向对话框中添加一个成员函数。
void OnPosChanged();
最后添加自定义消息CM_POSCHANGE的消息宏映射:
BEGIN_MESSAGE_MAP(CFirstProjectDlg,CDialog)
//{{AFX_MSG_MAP(CFirstProjectDlg)}}
ON_WM_SYSCOMMAND()
ON_WM_PANT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_AUTHOR,OnKillfocusAuthor)
ON_EN_KILLFOCUS(IDC_AUTHOR,OnKillfocusAuthor)
ON_WM_CLOSE()
//}}AFX_MSG_MAP
ON_MESSAGE(CM_POSCHANGE,OnPosChanged)
END_MESSAGE_MAP()
这样在对话框接收到CM_POSCHANGE消息的时候系统将调用OnPosChanged();方法。
8、使用消息对话框:AfxMessageBox()函数或MessageBox();。