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
}