程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 探索豐富多彩的C++技術內幕手記

探索豐富多彩的C++技術內幕手記

編輯:C++入門知識

C++語言是主要使用的編程語言,但是C++憑借其對C的兼容性,面向對象性質也開始在該領域嶄露頭角,在系統級的開發上,C++技術應用居多。這3種語言各有特色。總的來說,C++的應用集中在如下主要領域。

一、應用程序框架

在CmyApp類中定義了一個虛函數:Virtual BOOL InitIstance();用來初始化應用程序。在這裡可以初始化應用程序框架。在CMyApp類中有一個數據成員m_pMainWnd這是主框架窗口的指針。在需要時可以用AfxGetApp()->m_pMainWnd來獲得。其中AfxGetApp()是獲得應用程序的指針。

初始化應用程序:

  1. m_pMainWnd=new CmyFrame();  
  2. m_pMainWnd->ShowWindow(m_nCmdShow);     
  3. m-pMainWnd->UpdateWindow(); 

如果更新區域不為空,UpdateWindow成員函數直接發送消息WM_PAINT 越過應用程序隊列,如果更新區域為空,則不會發送WM_PAINT消息。 這個函數設置窗口的可視狀態。每個應用程序只應用CwinApp::m_nCmdShow為主窗口調用一次ShowWindow.以後調用ShowWindow應該用下面列出的值來替代CWinApp::m_mCmdShow指定的值。

  1. CWnd::ShowWindow  
  2. 函數原型:BOOL  ShowWindow(int m_nCmdShow)  
  3. 返回值:窗口可見為:非零值;  
  4. 窗口不可見為:零;  
  5. m_nCmdShow可以指定的值有:  
  6. SW_HIDE 隱藏窗口並將活動狀態傳遞給其它窗口。  
  7. SW_MINIMIZE最小化窗口並激活系統列表中的頂層窗口。  
  8. SW_RESTORE 激活並顯示窗口。如果窗口是最小化或最大化的,Windows恢復其原來的大小和位置。   
  9. SW_SHOW 激活窗口並以其當前的大小和位置顯示。  
  10. SW_SHOWMAXIMIZED 激活窗口並顯示為最大化窗口。  
  11. SW_SHOWMINIMIZED 激活窗口並顯示為圖標。   
  12. SW_SHOWMINNOACTIVE 將窗口顯示為圖標。當前活動的  
  13. 窗口將保持活動狀態。  
  14. SW_SHOWNA 按照當前狀態顯示窗口。當前活動的窗口將保持活動狀態。  
  15. SW_SHOWNOACTIVATE 按窗口最近的大小和位置顯示。當前活動的窗口將保持活動狀態。   
  16. SW_SHOWNORMAL 激活並顯示窗口。如果窗口是最小化或最大化的,則Windows恢復它原來的大小和位置。 

CmyFrame類 類CmyFrame的對象代表著應用程序的主框架窗口。當構造函數調用基類CframeWnd的Create成員函數時,Windows將創建具體的的窗口結構,同時應用程序框架會將所創建的窗口結構連接到C++對象中。為了顯示所創建的窗口,必須調用基類中的ShowWindow和UpdateWindow成員函數。CmyFrame::Onpaint函數 應用程序框架在每次需要重新繪制窗口時,都要調用這個非常重要的且已經被映射過的CmyFrame類的成員函數。

在程序運行時,在用戶改變了窗口的大小時,在窗口的全部或部分被重新顯現時,OnPaint成員函數都會被調用。CpaintDC和圖形設備接口GDI)有關,MFC庫應用程序框架並沒有采用虛函數來處理Window消息,相反,它通過一些宏來將特定的消息映射到派生類中相應的成員函數上。MFC消息控件函數要求我們提供函數原型、函數體以及在消息映射中的。

  • C++程序員講述C++編程技巧說明
  • 探索C++教程的種種奇妙之處
  • 漫談怎樣更好的進行學習C++語言
  • 剖析C++的復雜性的兩種分類方法
  • 詳述C++庫的使用與維護工作

同樣的原因,在寫了“你應當如何學習C++技術一文之後,當孟巖先生邀請我給《程序員》寫一個系列的文章,介紹一下我在接觸C++的過程中的態度和認識轉變時,我雖然非常高興的答應了,但直到現在3個月過去了還是顆粒無收。為什麼?因為我覺得真正本質的問題沒有被清晰的觸摸到;所以直到現在我都沒有動筆,免得廢話說了一大堆,除了能被當成小說讀讀之外,對真正考慮是否要學習乃至使用C++的人未必有什麼實際用處。

然而,這麼個念頭一直都放在潛意識裡面。前一陣子和Bjarne通信,談到了關於C++技術的一些想法,在郵件裡面總結了一下C++的復雜性來源,感覺思路清晰了許多。而這篇文章要達到的目的,正是傳達對C++的復雜性的一個具體而明確的認識,有了這個認識作為支持,我們便可以推導出學習C++的最佳實踐者)的方法。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved