MFC学习笔记(2)
基于对话框编程
- 静态文本的相关操作
- 静态文本的创建与button等控件相同
- 创建之后,可以通过点击事件更改/获取静态文本的内容;
//将静态文本设置为呵呵 void CCStatic_testDlg::OnBnClickedButton1() { // TODO: 在此添加控件通知处理程序代码 m_text.SetWindowTextW(TEXT("呵呵")); } //获取静态文本中的内容并弹出 void CCStatic_testDlg::OnBnClickedButton2() { // TODO: 在此添加控件通知处理程序代码 CString str; m_text.GetWindowTextW(str); MessageBox(str); }
- 在创建静态文本之后,与创建模态/非模态对话框类似的是,需要在代码中赋予其一个标识,因此需要为其创建变量,之后才能通过代码更改/获取其内容,方法为右键创建变量。但如果直接创建,则会出错,因为其ID包含static无法创建变量,则在创建之前,更改即可。
ps. 个人的理解是,在课程中为了讲解内容的获取和更改需要做此操作,而在实际中,静态文本一般不需要获取或更改,因此也就不需要这个操作。且对按钮的相关操作与其类似,创建成员变量之后可以更改/获取按钮的内容/属性,包括是否可按下等属性。//禁用/激活按钮。 m_btn.EnableWindow(FALSE);
- 利用静态文本显示图片:只能显示bmp图片,需要添加宏,不常用,不做记录。
- 对各种控件的初始化的操作,包括初始化属性设置,或者对话框的创建(因为只能创建一次)均在Dlg类的OnInitDialog()之中完成。
- 编辑框的使用
- 与其他控件不同的地方很少,主要是在编辑框的属性,可以设置是否自动换行,是否显示滚动条等;
- 如上条5.所说,对编辑框初始内容的设置需要添加成员变量,并在对话框的初始化方法中对其进行初始化。
- 对于对话框的关闭,有OnOK()和OnCancel()两种方式,个人理解就是 确认和取消的区别,但都可以推出当前对话框。
- 设置和获取内容均为set和get。
- MFC默认单行敲击回车会自动确认,即调用OnOK()函数。
- 关于值类型的编辑框:
- 其变量本身的值,与控件的显示的值相互关联,通过Update()方法来相互更新,使得值传递更加方便
- Update&#x