对话框
1.在MFC中,对资源的操作,通常都是通过和资源相对应的一个类来完成的,对话框资源也有相应的类。
2.模态对话框的创建需要使用到CDialog::DoModal();来实现,返回值作为CDialog::EndDialog的一个参数 而模态对话框的关闭也是需要使用EndDialog来完成的。
3.非模态对话框的创建需要使用到CDialog::Create();来实现,参数1是对话框模板的ID或者名字,参数2是父窗口对象指针。
4.非模态对话框创建之后需要调用showwindow函数才能显示。而模态的则不用,domodal函数默认会用显示窗口的能力。
5.模态对话框在运行到domodal();时会使程序停止在此处,对话框会显示。然而非模态的对话框并不会使程序停止在某一条语句上。所以如果定义的局部变量,则在离开作用域的时候便会被销毁。所以,应该定义为成员变量或者使用指针从堆上分配内存来生成对话框类对象。
6.消息分为3类:标准消息、命令消息、通告消息。
7.动态添加按钮时,如果创建按钮对象时没有指定WS_VISIBLE的话就需要调用ShowWindow();函数。
8.没有个从CWnd派生的对象内部都一个成员变量m_hWnd保存了和这个C++对象相关的窗口的一个句柄。当此对象和一个窗口相关联的时候,这个成员变量就是有值的。否则为空,因此可以根据对此成员变量的测试来判断此对象是否已经和一个窗口关联。
9.静态文本框控件只是为了来显示信息,不用来相应消息,所以默认ID都是一样的,如果需要相应消息,则可以自己手动修改它的ID。
10.静态文本框也是一个窗口,如果想要获取或者修改窗口的文本,则需要一个函数:CWnd::GetWindowText();来完成。可以使用函数:CWnd::GetDlgItem();来获取对话框上子控件的指针。通过ID号来识别需要的子控件。
11.访问控件的方法种类
七种:
GetDlgItem()->Get(set)WindowText()
GetDlgItemText()/SetDlgItemText()
GetDlgItemInt()/SetDlgItemInt()
将控件和整型成员变量相关联
将控件与控件成员变量相关联
SendMessage()
SendDlgItemMessage()
12.DDX_ 函数可以将控件和一个成员变量相关联。
13.如果编辑框的mutilline不选上的话,就不能相应回车字符消息。
14.实现回车键使得焦点在编辑框中依次转移,在默认的回车处理函数中实现。
15.要实现控件的数据与关联的变量保持一直,必须显示的调用UpdateData();函数来更新数据。从控件中取值前,先调用此函数,同时,如果要向控件写入数据的话,也要调用此函数来实现同步。
16.利用AddString();函数来向列表框或者组合框添加选项。添加选项最好在OnInitDialog();函数中进行。需要添加对WM_INITDIALOG消息的处理。