【笔试/面试】MFC(七)—— 对话框
2016-04-17 23:01
525 查看
(1)按钮的单击,列表框的选择属于通告消息;
(2)控件其实也是窗口
在MFC 编程中,对资源的操作通常都是通过和资源相对应的类来完成。比如与对话框资源相对应的类,即为 CDialog。
一般而言,我们将对话框的弹出作为某一菜单项单击时的响应。
(1)调用 CDialog 类的 DoModal 方创建模态对话框,
(2)调用 CDialog 类的 Create方创建非模态对话框,
与模态对话框不同,当我们点击非模态对话框的 OK 或者 Cancel 时,对话框并未销毁,只是隐藏了。
(3)如何判断一个按钮(CButton)有没有被创建
(4)控件的布局(Layout)
先左右对齐(Align ⇒ Left/Right)
再上下均匀布局(Space Evenly ⇒ Across(左右间隙均匀) /Down(上下间隙均匀))
(2)为了使一个文本控件能够响应鼠标单击消息,那么需要两个额外的步骤:
改变其ID
在它的属性对话框选中 Notify 选项;
(2)控件其实也是窗口
在MFC 编程中,对资源的操作通常都是通过和资源相对应的类来完成。比如与对话框资源相对应的类,即为 CDialog。
// CDialog 也是窗口类 class CDialog : public CWnd {
一般而言,我们将对话框的弹出作为某一菜单项单击时的响应。
(1)调用 CDialog 类的 DoModal 方创建模态对话框,
CTestDlg dlg; dlg.DoModal();
(2)调用 CDialog 类的 Create方创建非模态对话框,
m_dlg.Create(IDD_DIALOG1, this); m_dlg.ShowWindow(SW_SHOW);
与模态对话框不同,当我们点击非模态对话框的 OK 或者 Cancel 时,对话框并未销毁,只是隐藏了。
(3)如何判断一个按钮(CButton)有没有被创建
// 没有被创建 if (!btn.m_hWnd) { btn.Create(); } else { // 被创建 btn.DestroyWindow(); }
(4)控件的布局(Layout)
先左右对齐(Align ⇒ Left/Right)
再上下均匀布局(Space Evenly ⇒ Across(左右间隙均匀) /Down(上下间隙均匀))
访问对话框元素(也即控件)
CWnd 类的一个成员函数:CWnd *GetDlgItem(int nID) const;
静态文本控件
(1)静态文本控件默认状态下是不发送通告消息的;(2)为了使一个文本控件能够响应鼠标单击消息,那么需要两个额外的步骤:
改变其ID
在它的属性对话框选中 Notify 选项;
相关文章推荐
- 菜鸟面试题收集
- LeetCode(63)-First Bad Version
- 我在这记录我的“安卓程序员”开发之路
- 操作系统 - 程序的默认最大栈大小
- 【程序人生】:程序员的学历
- 面试之路(3)-详解MVC,MVP,MVVM
- 面试之路(3)-详解MVC,MVP,MVVM
- 面试之路(3)-详解MVC,MVP,MVVM
- 面试准备好了吗?
- 面试习题
- Java程序员都应该知道的福利
- 面试题04:找出两个单向链表的第一个公共节点
- Java程序员面试中的多线程问题
- JAVA程序员经典面试三十三问,你能回答多少题。
- J2EE经典面试题以及华为面试题
- 经典的20道AJAX面试题
- jsp及Servlet经典面试题以及答案
- android 面试
- 有学历的程序员永远不懂没学历的痛,就像白天不懂夜的黑
- MBTI职业性格测试