2024-06-23 17:36:53 +08:00

77 lines
1.7 KiB
C++

// SplashScreenEx.cpp : header file
// by John O'Byrne 01/10/2002
#pragma once
#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 CSplashScreenEx : public CWnd
{
DECLARE_DYNAMIC(CSplashScreenEx)
public:
CSplashScreenEx();
virtual ~CSplashScreenEx();
BOOL Create(CWnd *pWndParent,LPCTSTR szText=NULL,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;
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();
LRESULT OnPrintClient(WPARAM wParam, LPARAM lParam);
protected:
virtual void PostNcDestroy();
};