使用CXTPDialogBase簡單實現resize對話框

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
}

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章