123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- #if !defined(AFX_DIALOGRESIZE_H__7902A5BF_2C25_11D6_AB38_00D0B70C3D79__INCLUDED_)
- #define AFX_DIALOGRESIZE_H__7902A5BF_2C25_11D6_AB38_00D0B70C3D79__INCLUDED_
- #if _MSC_VER > 1000
- #pragma once
- #endif // _MSC_VER > 1000
- // dialog resize map macros
- #define DECLARE_DLGRESIZE_MAP \
- virtual const AfxResizeMap* GetDlgResizeMap();
- #define BEGIN_DLGRESIZE_MAP(theClass) \
- const theClass::AfxResizeMap* theClass::GetDlgResizeMap() \
- { \
- static const AfxResizeMap theMap[] = \
- {
- #define END_DLGRESIZE_MAP() \
- { -1, 0 }, \
- }; \
- return theMap; \
- }
- #define DLGRESIZE_CONTROL(id, flags) \
- { id, flags },
- #define BEGIN_DLGRESIZE_GROUP() \
- { -1, _DLSZ_BEGIN_GROUP },
- #define END_DLGRESIZE_GROUP() \
- { -1, _DLSZ_END_GROUP },
- class CDialogResize : public CDialog
- {
- public:
- // Data declarations and members
- enum
- {
- DLSZ_SIZE_X = 0x00000001,
- DLSZ_SIZE_Y = 0x00000002,
- DLSZ_MOVE_X = 0x00000004,
- DLSZ_MOVE_Y = 0x00000008,
- DLSZ_REPAINT = 0x00000010,
- // internal use only
- _DLSZ_BEGIN_GROUP = 0x00001000,
- _DLSZ_END_GROUP = 0x00002000,
- _DLSZ_GRIPPER = 0x00004000
- };
- struct AfxResizeMap
- {
- int m_nCtlID;
- DWORD m_dwResizeFlags;
- };
- struct AfxResizeData
- {
- int m_nCtlID;
- DWORD m_dwResizeFlags;
- RECT m_rect;
- int GetGroupCount() const
- {
- return (int)LOBYTE(HIWORD(m_dwResizeFlags));
- }
- void SetGroupCount(int nCount)
- {
- ASSERT(nCount > 0 && nCount < 256);
- DWORD dwCount = (DWORD)MAKELONG(0, MAKEWORD(nCount, 0));
- m_dwResizeFlags &= 0xFF00FFFF;
- m_dwResizeFlags |= dwCount;
- }
- BOOL operator==(const AfxResizeData& r) const
- {
- return (m_nCtlID == r.m_nCtlID && m_dwResizeFlags == r.m_dwResizeFlags);
- }
- };
- CArray<AfxResizeData, AfxResizeData&> m_arrData;
- SIZE m_sizeDialog;
- POINT m_ptMinTrackSize;
- BOOL m_bGripper;
- void InitResizing(BOOL bAddGripper = TRUE, BOOL bUseMinTrackSize = TRUE, DWORD dwForceStyle = WS_THICKFRAME | WS_CLIPCHILDREN);
- void UpdateLayout(int cxWidth, int cyHeight);
- BOOL PositionControl(int cxWidth, int cyHeight, RECT& rectGroup, AfxResizeData& data, bool bGroup, int xyStartNext = -1);
- // Construction
- public:
- CDialogResize(UINT uResourceID, CWnd* pParent = NULL);
- CDialogResize(LPCTSTR pszResourceID, CWnd* pParent = NULL);
- CDialogResize();
- void CommonConstruct();
- // Dialog Data
- //{{AFX_DATA(CDialogResize)
- // NOTE: the ClassWizard will add data members here
- //}}AFX_DATA
- // Overrides
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(CDialogResize)
- protected:
- virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
- //}}AFX_VIRTUAL
- // Implementation
- protected:
- CWnd m_wndGripper;
- // Generated message map functions
- //{{AFX_MSG(CDialogResize)
- afx_msg void OnSize(UINT nType, int cx, int cy);
- afx_msg void OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI);
- //}}AFX_MSG
- DECLARE_MESSAGE_MAP()
- DECLARE_DLGRESIZE_MAP;
- };
- //{{AFX_INSERT_LOCATION}}
- // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
- #endif // !defined(AFX_DIALOGRESIZE_H__7902A5BF_2C25_11D6_AB38_00D0B70C3D79__INCLUDED_)
|