Files
envi-code/SourceCode/Code2026/Pool3dCmd/CXMLCMainBar.h
T

77 lines
1.8 KiB
C++
Raw Normal View History

2026-10-04 00:04:20 +08:00
#pragma once
2026-09-28 15:28:50 +08:00
#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()
2026-10-04 00:04:20 +08:00
// 解决AutoCAD2009以后屏幕菜单拖动限制最小尺寸问题
2026-09-28 15:28:50 +08:00
#if ARX > 16
protected:
virtual CSize CalcFixedLayout(BOOL bStretch, BOOL bHorz);
2026-10-04 00:04:20 +08:00
// 子类化DockBar窗口
2026-09-28 15:28:50 +08:00
BOOL SubclassDockBar(HWND hWnd);
2026-10-04 00:04:20 +08:00
// 反子类化DockBar窗口
2026-09-28 15:28:50 +08:00
void UnsubclassDockBar();
2026-10-04 00:04:20 +08:00
// 检测点击到边框的位置
2026-09-28 15:28:50 +08:00
UINT OnTrackHitTest(CPoint pt);
2026-10-04 00:04:20 +08:00
// 获取点中边框的位置尺寸
2026-09-28 15:28:50 +08:00
UINT OnGetTrackRect(UINT nDockOrHit, CRect &rc);
2026-10-04 00:04:20 +08:00
// 启动拖动操作
2026-09-28 15:28:50 +08:00
void OnStartTracking(UINT nHit);
2026-10-04 00:04:20 +08:00
// 拖动更新过程
2026-09-28 15:28:50 +08:00
void OnTrackUpdate(CPoint pt);
2026-10-04 00:04:20 +08:00
// 停止拖动操作
2026-09-28 15:28:50 +08:00
void OnStopTracking();
2026-10-04 00:04:20 +08:00
// 拖动更新显示
2026-09-28 15:28:50 +08:00
void OnTrackPaint();
2026-10-04 00:04:20 +08:00
// 拖动状态
2026-09-28 15:28:50 +08:00
BOOL m_bTracking;
2026-10-04 00:04:20 +08:00
// 拖动边框位置尺寸
2026-09-28 15:28:50 +08:00
CRect m_rcTracking;
private:
2026-10-04 00:04:20 +08:00
// 被子类化的DockBar窗口
2026-09-28 15:28:50 +08:00
HWND m_hDockBar;
2026-10-04 00:04:20 +08:00
// 子类化DockBar的窗口过程
2026-09-28 15:28:50 +08:00
WNDPROC m_pfnOldProc;
2026-10-04 00:04:20 +08:00
// 被子类化DockBar新窗口过程实现
2026-09-28 15:28:50 +08:00
LRESULT OnDockBarProc(HWND hWnd, UINT nMessage, WPARAM wParam, LPARAM lParam);
2026-10-04 00:04:20 +08:00
// 被子类化DockBar新窗口过程函数
2026-09-28 15:28:50 +08:00
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;
};