使用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
}

 

 

你可能感兴趣的:(使用CXTPDialogBase简单实现resize对话框)