16,548
社区成员




class CDockableForm : virtual public CDialog
{
// 可侧靠
public:
CDockableForm(UINT nIDTemplate);
virtual BOOL Create(LPCTSTR lpszCaption, CWnd* pParentWnd, const RECT& rect, BOOL bHasGripper, UINT nID, DWORD dwStyle, DWORD dwTabbedStyle = AFX_CBRS_REGULAR_TABS, DWORD dwControlBarStyle = AFX_DEFAULT_DOCKING_PANE_STYLE, CCreateContext* pContext = NULL);
CDockablePane& GetDockablePane() { return m_wndPane; }
private:
CDockablePaneAsContainer m_wndPane;
};
class CScrollDialog : virtual public CDialog
{
// 可滑动
public:
CScrollDialog(UINT nIDTemplate);
virtual BOOL OnInitDialog();
private:
int m_nCurWidth;
int m_nScrollPos;
CRect m_rect;
public:
DECLARE_MESSAGE_MAP()
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
};
CScrollDialog::CScrollDialog(UINT nIDTemplate)
: CDialog(nIDTemplate)
{
}
BOOL CScrollDialog::OnInitDialog()
{
CDialog::OnInitDialog();
GetWindowRect(&m_rect);
m_nScrollPos = 0;
return true;
}
// 出问题了!
BEGIN_MESSAGE_MAP(CScrollDialog, CDialog)
ON_WM_SIZE()
ON_WM_HSCROLL()
END_MESSAGE_MAP()
void CScrollDialog::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
// TODO: 在此处添加消息处理程序代码
// 实现代码
}
void CScrollDialog::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
// 实现代码
CDialog::OnVScroll(nSBCode, nPos, pScrollBar);
}
class CControlDialog : public CDockableForm, private CScrollDialog
{
// 可停靠的带滑条对话框
DECLARE_DYNAMIC(CControlDialog)
public:
CControlDialog(CWnd* pParent = NULL); // 标准构造函数
virtual ~CControlDialog();
// 对话框数据
enum { IDD = IDD_CONTROL };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
private:
virtual BOOL OnInitDialog();
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
private:
// 一些变量
};
// 有问题!
BEGIN_MESSAGE_MAP(CControlDialog, CDockableForm)
ON_WM_SIZE()
ON_WM_HSCROLL()
ON_BN_CLICKED(IDC_CHECK_HAS_LEADER, &CControlDialog::OnBnClickedCheckHasLeader)
END_MESSAGE_MAP()