您的位置:首页 > 职场人生

【笔试/面试】MFC(七)—— 对话框

2016-04-17 23:01 525 查看
(1)按钮的单击,列表框的选择属于通告消息;

(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 选项;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: