92 lines
2.0 KiB
C++
92 lines
2.0 KiB
C++
#pragma once
|
|
|
|
class CmdGroupWnd;
|
|
class CmdPaletteSet: public CAdUiPaletteSet
|
|
{
|
|
DECLARE_DYNAMIC(CmdPaletteSet);
|
|
public:
|
|
CmdPaletteSet();
|
|
~CmdPaletteSet();
|
|
bool CreatePaletteSet(LPCTSTR pszTitle);
|
|
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
|
|
afx_msg void OnDestroy();
|
|
|
|
DECLARE_MESSAGE_MAP()
|
|
|
|
protected:
|
|
virtual bool OnClosing();
|
|
virtual void GetFloatingMinSize(long *plMinWidth, long *plMinHeight);
|
|
virtual void SizeChanged(CRect *lpRect, BOOL bFloating, int flags);
|
|
virtual void GetMinimumSize(CSize &size);
|
|
virtual void GetMaximumSize(CSize &size);
|
|
|
|
protected:
|
|
virtual CSize CalcFixedLayout(BOOL bStretch, BOOL bHorz);
|
|
|
|
// 子类化DockBar窗口
|
|
BOOL SubclassDockBar(HWND hWnd);
|
|
|
|
// 反子类化DockBar窗口
|
|
void UnsubclassDockBar();
|
|
|
|
// 检测点击到边框的位置
|
|
UINT OnTrackHitTest(CPoint pt);
|
|
|
|
// 获取点中边框的位置尺寸
|
|
UINT OnGetTrackRect(UINT nDockOrHit, CRect& rc);
|
|
|
|
// 启动拖动操作
|
|
void OnStartTracking(UINT nHit);
|
|
|
|
// 拖动更新过程
|
|
void OnTrackUpdate(CPoint pt);
|
|
|
|
// 停止拖动操作
|
|
void OnStopTracking();
|
|
|
|
// 拖动更新显示
|
|
void OnTrackPaint();
|
|
|
|
// 拖动状态
|
|
BOOL m_bTracking;
|
|
// 拖动边框位置尺寸
|
|
CRect m_rcTracking;
|
|
|
|
private:
|
|
// 被子类化的DockBar窗口
|
|
HWND m_hDockBar;
|
|
// 子类化DockBar的窗口过程
|
|
WNDPROC m_pfnOldProc;
|
|
// 被子类化DockBar新窗口过程实现
|
|
LRESULT OnDockBarProc(HWND hWnd, UINT nMessage, WPARAM wParam, LPARAM lParam);
|
|
// 被子类化DockBar新窗口过程函数
|
|
static LRESULT CALLBACK DockBarProc(HWND hWnd, UINT nMessage, WPARAM wParam, LPARAM lParam);
|
|
static CmdPaletteSet* m_pMySelft;
|
|
};
|
|
|
|
class CmdPalette : public CAdUiPalette
|
|
{
|
|
DECLARE_DYNAMIC(CmdPalette)
|
|
|
|
public:
|
|
CmdPalette();
|
|
~CmdPalette();
|
|
bool CreatePalette(LPCTSTR pszMenuFile,LPCTSTR pszTitle,int nIndex);
|
|
|
|
DECLARE_MESSAGE_MAP()
|
|
|
|
public:
|
|
virtual void OnSetActive() ;
|
|
virtual void GetFloatingMinSize (long *pnMinWidth, long *pnMinHeight);
|
|
void MoveWindow(LPCRECT lpRect, BOOL bRepaint = TRUE);
|
|
|
|
afx_msg void OnDestroy();
|
|
afx_msg void OnPaint();
|
|
afx_msg BOOL OnMouseWheel(UINT nFlags,short zDelta,CPoint pt);
|
|
|
|
private:
|
|
std::vector<CmdGroupWnd*> m_grpWndPtrs;
|
|
};
|
|
|
|
|