#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; };