您的位置:首页 > 编程语言 > PHP开发

使用CXTPDialogBase简单实现resize对话框

2012-11-08 10:47 369 查看
mfc能够轻松的创建对话框,,当如果对于一个可自由变换大小的对话框来说,在大小改变时要控制里面各个控件的大小和位置却是一件比较麻烦的事情。找了很久发现codejock已经很好的实现这个功能,下面简单介绍一下用法。

MyDlg.h

class MyDlg: public CXTPDialogBase<CXTResizeDialog>
{
DECLARE_DYNAMIC(MyDlg)

public:
MyDlg();   // standard constructor
virtual ~MyDlg();

// Dialog Data
enum { IDD = IDD_QP_VIP_SELECT_DIALOG };

protected:
virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
virtual BOOL OnInitDialog();
afx_msg void OnBnClickedOk();
afx_msg void OnBnClickedCancel();
DECLARE_MESSAGE_MAP()
protected:
CXTPButton				m_wndOK;
CXTPButton				m_wndCancel;
};


然后我们只需要在OnInitDialog函数中指定按钮的对齐方式就能够保证对话框在OnSize的时候,各个空间都在理想的位子了:

BOOL MyDlg::OnInitDialog()
{
CXTPDialogBase<CXTPResizeDialog>::OnInitDialog();

// 设置对齐方式
SetResize(IDOK, SZ_BOTTOM_RIGHT, SZ_BOTTOM_RIGHT);
SetResize(IDCANCEL, SZ_BOTTOM_RIGHT, SZ_BOTTOM_RIGHT);

return TRUE;  // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: