Files
envi-code/SourceCode/Code2026/Pool3dCmd/CXMLCMainBar.h
T
2026-09-28 15:28:50 +08:00

78 lines
1.7 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;
};