78 lines
1.8 KiB
C++
78 lines
1.8 KiB
C++
#pragma once
|
|
#include "aduiPaletteSet.h"
|
|
|
|
class CXMLCDlg;
|
|
class CXMLCMainBar : public CAdUiPaletteSet
|
|
{
|
|
DECLARE_DYNAMIC(CXMLCMainBar);
|
|
|
|
public:
|
|
CXMLCMainBar();
|
|
virtual ~CXMLCMainBar();
|
|
|
|
protected:
|
|
|
|
//{{AFX_VIRTUAL(CXMLCMainBar)
|
|
protected:
|
|
virtual bool OnClosing();
|
|
virtual void SizeChanged(CRect *lpRect, BOOL bFloating, int flags);
|
|
//}}AFX_VIRTUAL
|
|
|
|
protected:
|
|
//{{AFX_MSG(CXMLCMainBar)
|
|
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
|
|
afx_msg void OnContextMenu(CWnd *pWnd, CPoint point);
|
|
afx_msg void OnDestroy();
|
|
//}}AFX_MSG
|
|
DECLARE_MESSAGE_MAP()
|
|
|
|
// 解决AutoCAD2009以后屏幕菜单拖动限制最小尺寸问题
|
|
#if ARX > 16
|
|
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 CXMLCMainBar *m_pMySelft;
|
|
#endif // ARX> 16
|
|
|
|
#ifdef _DEBUG
|
|
void AssertValid() const {}
|
|
#endif
|
|
|
|
protected:
|
|
|
|
CXMLCDlg *m_pwndXMLCMainDlg;
|
|
};
|
|
|