01 MFC 基本概念解析

2021-09-28 20:05:42 字數 1766 閱讀 9220

我們在編寫標準c程式的時候,經常會呼叫各種庫函式來輔助完成某些功能:初學者使用得最多的c庫函式就是printf了,這些庫函式是由你所使用的編譯器廠商提供的。在windows平台下,也有類似的函式可供呼叫:不同的是,這些函式是由windows作業系統本身提供的。

sdk:軟體開發工具包(software development kit),一般都是一些被軟體工程師用於為特定的軟體包、軟體框架、硬體平台、作業系統等建立應用軟體的開發工具的集合。

windows應用程式api函式是通過c語言實現的,所有主要的 windows 函式都在 windows.h 標頭檔案中進行了宣告。windows 作業系統提供了 1000 多種 api函式。

視窗是 windows 應用程式中乙個非常重要的元素,乙個 windows 應用程式至少要有乙個視窗,稱為主視窗。

視窗是螢幕上的一塊矩形區域,是 windows 應用程式與使用者進行互動的介面。利用視窗可以接收使用者的輸入、以及顯示輸出。

乙個應用程式視窗通常都包含標題欄、選單欄、系統選單、最小化框、最大化框、 可調邊框,有的還有滾動條。如下圖:

視窗可以分為客戶區和非客戶區, 如上圖。 客戶區是視窗的一部分, 應用程式通常在客戶區中顯示文字或者繪製圖形。

標題欄、 選單欄、 系統選單、 最小化框和最大化框、 可調邊框統稱為視窗的非客戶區, 它們由 windows 系統來管理, 而應用程式則主要管理客戶區的外觀及操作。

視窗可以有乙個父視窗, 有父視窗的視窗稱為子視窗。除了上圖所示型別的視窗外, 對話方塊和訊息框也是一種視窗。 在對話方塊上通常還包含許多子視窗, 這些子視窗的形式有按鈕、 單選按鈕、 核取方塊、 組框、 文字編輯框等。

在 windows 應用程式中, 視窗是通過視窗控制代碼( hwnd) 來標識的。 我們要對某個視窗進行操作, 首先就要得到這個視窗的控制代碼。

控制代碼( handle) 是 windows 程式中乙個重要的概念, 使用也非常頻繁。在 windows 程式中, 有各種各樣的資源( 視窗、 圖示、游標,畫刷等), 系統在建立這些資源時會為它們分配記憶體, 並返回標識這些資源的標識號, 即控制代碼。 在後面的內容中我們還會看到圖示控制代碼( hicon)、 游標控制代碼( hcursor) 和畫刷控制代碼( hbrush)

windows 程式設計是一種完全不同於傳統的 dos 方式的程式設計方法。它是一種事件驅動方式的程式設計模式,主要是基於訊息的。

每乙個 windows 應用程式開始執行後, 系統都會為該程式建立乙個訊息佇列, 這個訊息佇列用來存放該程式建立的視窗的訊息。

例如,當使用者在視窗中畫圖的時候,按下滑鼠左鍵,此時,作業系統會感知到這一事件,於是將這個事件包裝成乙個訊息,投遞到應用程式的訊息佇列中,等待應用程式的處理。

然後應用程式通過乙個訊息迴圈不斷地從訊息佇列中取出訊息,並進行響應。

在這個處理過程中,作業系統也會給應用程式「 傳送訊息」。所謂「 傳送訊息」,實際上是作業系統呼叫程式中乙個專門負責處理訊息的函式,這個函式稱為視窗過程。

當windows作業系統啟動乙個程式時,它呼叫的就是該程式的winmain函式( 實際是由插入到可執行檔案中的啟動**呼叫的)。 winmain是windows程式的入口點函式,與dos程式的入口點函式main的作用相同,當winmain 函式結束或返回時,windows應用程式結束。

01 MFC的初始化

test.cpp include using namespace std public int main class.h ifndef class h define class h class cwnd class cobject 完美分割線 class ccmdtarget public cobj...

01 爬蟲的基本概念

爬蟲網路爬蟲 又被稱為網頁蜘蛛,網路機械人 就是模擬客戶端傳送網路請求,接收請求響應,一種按照一定的規則,自動地抓取網際網路資訊的程式.原則上,只要是瀏覽器能做的事情,爬蟲都能做.爬蟲能做什麼 爬蟲的分類 爬蟲獲取的資料的用途 進行資料分析或者是機器學習相關的專案 爬蟲的流程 通用搜尋引擎的侷限性 ...

01docker基本概念

官方文件url 2.docker的底層原理 linux容器 linux containers,lxc 技術 分層檔案系統構建和高效的映象機制 3 docker的好處 docker通過容器來打包應用 解耦應用和執行平台。這意味著遷移的時候,需要在新的伺服器上啟動需要的容器就可以了,無論新舊伺服器是否是...