// SplashScreenEx.cpp : header file // by John O'Byrne 01/10/2002 #pragma once #include "DllDefines.h" #define CSS_FADEIN 0x0001 #define CSS_FADEOUT 0x0002 #define CSS_FADE CSS_FADEIN | CSS_FADEOUT #define CSS_SHADOW 0x0004 #define CSS_CENTERSCREEN 0x0008 #define CSS_CENTERAPP 0x0010 #define CSS_HIDEONCLICK 0x0020 #define CSS_TEXT_NORMAL 0x0000 #define CSS_TEXT_BOLD 0x0001 #define CSS_TEXT_ITALIC 0x0002 #define CSS_TEXT_UNDERLINE 0x0004 typedef BOOL(WINAPI* FN_ANIMATE_WINDOW)(HWND, DWORD, DWORD); // CSplashScreenEx class MCCTRDLLCLASS CSplashScreenEx : public CWnd { DECLARE_DYNAMIC(CSplashScreenEx) public: CSplashScreenEx(); virtual ~CSplashScreenEx(); BOOL Create(CWnd* pWndParent, LPCTSTR szText = NULL, DWORD dwTimeout = 2000, DWORD dwStyle = CSS_FADE | CSS_CENTERSCREEN | CSS_SHADOW); BOOL SetBitmap(UINT nBitmapID, short red = -1, short green = -1, short blue = -1); BOOL SetBitmap(LPCTSTR szFileName, short red = -1, short green = -1, short blue = -1); void Show(); void Hide(); void SetText(LPCTSTR szText); void SetTextFont(LPCTSTR szFont, int nSize, int nStyle); void SetTextDefaultFont(); void SetTextColor(COLORREF crTextColor); void SetTextRect(CRect& rcText); void SetTextFormat(UINT uTextFormat); protected: FN_ANIMATE_WINDOW m_fnAnimateWindow; CWnd* m_pWndParent; CBitmap m_bitmap; CFont m_myFont; HRGN m_hRegion; DWORD m_dwStyle; DWORD m_dwTimeout; CString m_strText; CRect m_rcText; UINT m_uTextFormat; COLORREF m_crTextColor; int m_nBitmapWidth; int m_nBitmapHeight; int m_nxPos; int m_nyPos; HRGN CreateRgnFromBitmap(HBITMAP hBmp, COLORREF color); void DrawWindow(CDC* pDC); protected: DECLARE_MESSAGE_MAP() public: afx_msg BOOL OnEraseBkgnd(CDC* pDC); afx_msg void OnPaint(); afx_msg void OnTimer(UINT_PTR nIDEvent); LRESULT OnPrintClient(WPARAM wParam, LPARAM lParam); protected: virtual BOOL PreTranslateMessage(MSG* pMsg); virtual void PostNcDestroy(); };