// DialogExt.h: interface for the CDialogExt class. // ////////////////////////////////////////////////////////////////////// #if !defined(AFX_DIALOGEXT_H__45C87796_F2BC_4097_BCA4_53C144B219DD__INCLUDED_) #define AFX_DIALOGEXT_H__45C87796_F2BC_4097_BCA4_53C144B219DD__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 typedef struct wndstate { bool m_sizable; bool m_minable; bool m_maxable; bool m_helpable; bool m_sysmenu; int m_winstate; WNDPROC oldWndProc; }WNDSTATE; class CDialogExt { public: CDialogExt() {} ~CDialogExt() {} static HWND m_hWnd; static WNDPROC m_cWndProc; static int m_height; //位图高度,也就是窗口标题栏高度 static int m_width; static CBitmap m_bmptop; static CBitmap m_bmpclose; static CBitmap m_bmpmax; static CBitmap m_bmpmin; static CBitmap m_bmprestore; static int m_buttonstate; static CFont m_CaptionFont; static void Init(); static CRect GetMaximizeRect(); static LRESULT DefWindowProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam ); static void OnNcPaint(CWnd* pWnd ); static BOOL Draw( CDC *pDC, int x, int y, LPRECT sr , CBitmap &bmp); static void Maximize(); static void OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS *lpncsp); static BOOL DrawButton( CDC * pDC, int i, int state); static CRect GetButtonRect(int i); static bool OnNcLButtonDown(UINT nHitTest, CPoint point); static void OnNcLButtonUp(UINT nHitTest, CPoint point); static void OnNcLButtonDblClk(UINT nHitTest, CPoint point); static void OnNcMouseMove(UINT nHitTest, CPoint point); }; #endif // !defined(AFX_DIALOGEXT_H__45C87796_F2BC_4097_BCA4_53C144B219DD__INCLUDED_)