《深入浅出MFC第2版(PDF格式)》第287章


#0156 aboutDlg。DoModal(); 
#0157 } 
878 
…………………………………………………………Page 941……………………………………………………………
附錄B Scribble Step5 完整原始碼 
MAINFRAME。H 
#0001 class CMainFrame : public CMDIFrameWnd 
#0002 { 
#0003 DECLARE_DYNAMIC(CMainFrame) 
#0004 public: 
#0005 CMainFrame(); 
#0006 
#0007 // Attributes 
#0008 public: 
#0009 
#0010 // Operations 
#0011 public: 
#0012 
#0013 // Overrides 
#0014 // ClassWizard generated virtual function overrides 
#0015 //{{AFX_VIRTUAL(CMainFrame) 
#0016 virtual BOOL PreCreateWindow(CREATESTRUCT& cs); 
#0017 //}}AFX_VIRTUAL 
#0018 
#0019 // Implementation 
#0020 public: 
#0021 virtual ~CMainFrame(); 
#0022 #ifdef _DEBUG 
#0023 virtual void AssertValid() const; 
#0024 virtual void Dump(CDumpContext& dc) const; 
#0025 #endif 
#0026 
#0027 protected: // control bar embedded members 
#0028 CStatusBar m_wndStatusBar; 
#0029 CToolBar m_wndToolBar; 
#0030 
#0031 // Generated message map functions 
#0032 protected: 
#0033 //{{AFX_MSG(CMainFrame) 
#0034 afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); 
#0035 // NOTE the ClassWizard will add and remove member functions here。 
#0036 // DO NOT EDIT what you see in these blocks of generated code! 
#0037 //}}AFX_MSG 
#0038 DECLARE_MESSAGE_MAP() 
#0039 }; 
879 
…………………………………………………………Page 942……………………………………………………………
第五篇 附錄
MAINFRAME。CPP 
#0001 #include 〃stdafx。h〃 
#0002 #include 〃Scribble。h〃 
#0003 
#0004 #include 〃MainFrm。h〃 
#0005 
#0006 #ifdef _DEBUG 
#0007 #define new DEBUG_NEW 
#0008 #undef THIS_FILE 
#0009 static char THIS_FILE'' = __FILE__; 
#0010 #endif 
#0011 
#0012 /////////////////////////////////////////////////////////////// 
#0013 // CMainFrame 
#0014 
#0015 IMPLEMENT_DYNAMIC(CMainFrame; CMDIFrameWnd) 
#0016 
#0017 BEGIN_MESSAGE_MAP(CMainFrame; CMDIFrameWnd) 
#0018 //{{AFX_MSG_MAP(CMainFrame) 
#0019 // NOTE the ClassWizard will add and remove mapping macros here。 
#0020 // DO NOT EDIT what you see in these blocks of generated code ! 
#0021 ON_WM_CREATE() 
#0022 //}}AFX_MSG_MAP 
#0023 END_MESSAGE_MAP() 
#0024 
#0025 static UINT indicators'' = 
#0026 { 
#0027 ID_SEPARATOR; // status line indicator 
#0028 ID_INDICATOR_CAPS; 
#0029 ID_INDICATOR_NUM; 
#0030 ID_INDICATOR_SCRL; 
#0031 }; 
#0032 
#0033 ///////////////////////////////////////////////////////////////// 
#0034 // CMainFrame construction/destruction 
#0035 
#0036 CMainFrame::CMainFrame() 
#0037 { 
#0038 // TODO: add member initialization code here 
#0039 
#0040 } 
#0041 
#0042 CMainFrame::~CMainFrame() 
#0043 { 
#0044 } 
880 
…………………………………………………………Page 943……………………………………………………………
附錄B Scribble Step5 完整原始碼 
#0045 
#0046 int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) 
#0047 { 
#0048 if (CMDIFrameWnd::OnCreate(lpCreateStruct) == …1) 
#0049 return …1; 
#0050 
#0051 if (!m_wndToolBar。Create(this) || 
#0052 !m_wndToolBar。LoadToolBar(IDR_MAINFRAME)) 
#0053 { 
#0054 TRACE0(〃Failed to create toolbarn〃); 
#0055 return …1; // fail to create 
#0056 } 
#0057 
#0058 if (!m_wndStatusBar。Create(this) || 
#0059 !m_wndStatusBar。SetIndicators(indicators; 
#0060 sizeof(indicators)/sizeof(UINT))) 
#0061 { 
#0062 TRACE0(〃Failed to create status barn〃); 
#0063 return …1; // fail to create 
#0064 } 
#0065 
#0066 // TODO: Remove this if you don"t want tool tips 
#0067 m_wndToolBar。SetBarStyle(m_wndToolBar。GetBarStyle() | 
#0068 CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC); 
#0069 
#0070 // TODO: Delete these three lines if you don"t want the toolbar to 
#0071 // be dockable 
#0072 m_wndToolBar。EnableDocking(CBRS_ALIGN_ANY); 
#0073 EnableDocking(CBRS_ALIGN_ANY); 
#0074 DockControlBar(&m_wndToolBar); 
#0075 
#0076 
#0077 return 0; 
#0078 } 
#0079 
#0080 BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) 
#0081 { 
#0082 // TODO: Modify the Window class or styles here by modifying 
#0083 // the CREATESTRUCT cs 
#0084 
#0085 return CMDIFrameWnd::PreCreateWindow(cs); 
#0086 } 
#0087 
#0088 ///////////////////////////////////////////////////////////////// 
#0089 // CMainFrame diagnostics 
#0090 
小说推荐
返回首页返回目录