按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
#0114 SetTimer(1; 750; NULL);
#0115
#0116 return 0;
#0117 }
#0118
#0119 void CSplashWnd::OnPaint()
#0120 {
#0121 CPaintDC dc(this);
#0122
#0123 CDC dcImage;
#0124 if (!dcImage。CreatepatibleDC(&dc))
#0125 return;
#0126
#0127 BITMAP bm;
#0128 m_bitmap。GetBitmap(&bm);
#0129
#0130 // Paint the image。
#0131 CBitmap* pOldBitmap = dcImage。SelectObject(&m_bitmap);
#0132 dc。BitBlt(0; 0; bm。bmWidth; bm。bmHeight; &dcImage; 0; 0; SRCCOPY);
#0133 dcImage。SelectObject(pOldBitmap);
#0134 }
#0135
#0136 void CSplashWnd::OnTimer(UINT nIDEvent)
#0137 {
#0138 // Destroy the splash screen window。
#0139 HideSplashScreen();
#0140 }
TIPDLG。H (全新內容 )
#0001 #if !defined(TIPDLG_H_INCLUDED_)
#0002 #define TIPDLG_H_INCLUDED_
#0003
#0004 // CG: This file added by 'Tip of the Day' ponent。
#0005
#0006 /////////////////////////////////////////////////////////////////
#0007 // CTipDlg dialog
812
…………………………………………………………Page 875……………………………………………………………
16 ponents & ActiveX Controls
第 章 站眾的肩膀 使用
#0008
#0009 class CTipDlg : public CDialog
#0010 {
#0011 // Construction
#0012 public:
#0013 CTipDlg(CWnd* pParent = NULL); // standard constructor
#0014
#0015 // Dialog Data
#0016 //{{AFX_DATA(CTipDlg)
#0017 // enum { IDD = IDD_TIP };
#0018 BOOL m_bStartup;
#0019 CString m_strTip;
#0020 //}}AFX_DATA
#0021
#0022 FILE* m_pStream;
#0023
#0024 // Overrides
#0025 // ClassWizard generated virtual function overrides
#0026 //{{AFX_VIRTUAL(CTipDlg)
#0027 protected:
#0028 virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
#0029 //}}AFX_VIRTUAL
#0030
#0031 // Implementation
#0032 public:
#0033 virtual ~CTipDlg();
#0034
#0035 protected:
#0036 // Generated message map functions
#0037 //{{AFX_MSG(CTipDlg)
#0038 afx_msg void OnNextTip();
#0039 afx_msg HBRUSH OnCtlColor(CDC* pDC; CWnd* pWnd; UINT nCtlColor);
#0040 virtual void OnOK();
#0041 virtual BOOL OnInitDialog();
#0042 afx_msg void OnPaint();
#0043 //}}AFX_MSG
#0044 DECLARE_MESSAGE_MAP()
#0045
#0046 void GetNextTipString(CString& strNext);
#0047 };
#0048
#0049 #endif // !defined(TIPDLG_H_INCLUDED_)
TIPDLG。CPP (全新內容 )
#0001 #include 〃stdafx。h〃
813
…………………………………………………………Page 876……………………………………………………………
第篇 深入 MFC 程式設計
#0002 #include 〃resource。h〃
#0003
#0004 // CG: This file added by 'Tip of the Day' ponent。
#0005
#0006 #include
#0007 #include
#0008 #include
#0009
#0010 #ifdef _DEBUG
#0011 #define new DEBUG_NEW
#0012 #undef THIS_FILE
#0013 static char THIS_FILE'' = __FILE__;
#0014 #endif
#0015
#0016 /////////////////////////////////////////////////////////////////
#0017 // CTipDlg dialog
#0018
#0019 #define MAX_BUFLEN 1000
#0020
#0021 static const TCHAR szSection'' = _T(〃Tip〃);
#0022 static const TCHAR szIntFilePos'' = _T(〃FilePos〃);
#0023 static const TCHAR szTimeStamp'' = _T(〃TimeStamp〃);
#0024 static const TCHAR szIntStartup'' = _T(〃StartUp〃);
#0025
#0026 CTipDlg::CTipDlg(CWnd* pParent /*=NULL*/)
#0027 : CDialog(IDD_TIP; pParent)
#0028 {
#0029 //{{AFX_DATA_INIT(CTipDlg)
#0030 m_bStartup = TRUE;
#0031 //}}AFX_DATA_INIT
#0032
#0033 // We need to find out what the startup and file position parameters are
#0034 // If startup does not exist; we assume that the Tips on startup is checked TRUE。
#0035 CWinApp* pApp = AfxGetApp();
#0036 m_bStartup = !pApp…》GetProfileInt(szSection; szIntStartup; 0);
#0037 UINT iFilePos = pApp…》GetProfileInt(szSection; szIntFilePos; 0);
#0038
#0039 // Now try to open the tips file
#0040 m_pStream = fopen(〃tips。txt〃; 〃r〃);
#0041 if (m_pStream == NULL)
#0042 {
#0043 m_strTip。LoadString(CG_IDS_FILE_ABSENT);