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
}