VC 6 0及MFC基礎知識

2021-10-04 18:42:18 字數 4115 閱讀 3733

這是早期的學習筆記,今天翻出來,覺得還有點價值,就**到這裡。

visual c++ 6.0的主介面

的mfc

windows 的三大模組就是以dll( dynamic link librar、動態鏈結庫)的形式提供的(kernel32.dll,user32.dll,gdi32.dll),裡面就含有了 api函式的執行**。為了使用 dll 中的 api 函式, 必須要有 api 函式的宣告(.h)和其導入庫(.lib),導入庫可以先這樣理解:導入庫是為了在 dll 中找到 api 的入口點而使用的。

mfc是建立在c++的基礎上,利用c++的封裝功能使開發者擺脫windows中各種控制代碼的困擾,只需要面對c++中的物件,這樣一來使開發更接近開發語言而遠離系統。利用c++的封裝性開發者可以更容易理解和操作各種視窗物件;利用c++的派生性開發者可以減少開發自定義視窗的時間和創造出可重用的**;利用虛擬性可以在必要時更好的控制視窗的活動。

mfc(microsoft foundation classes, 微軟基礎類庫)是微軟提供的類庫(class libraries),以c++類的形式封裝的windowsapi,包含乙個應用程式框架,以減少應用程式開發人員的工作量。其中類包含大量windows控制代碼封裝類和windows內建控制項和元件的封裝類。mfc把windows sdk api函式包裝成許多個類(class)。mfc已經基本上不再更新了。

生成的程式專案(project:工程,專案)所在的資料夾(目錄)類似如:

其中.cpp檔案:是源**檔案

.dsp檔案:developerstudio project,是vc6.0的工程(project:工程,專案)檔案,用來儲存當前工程的資訊,例如編譯引數、包含的原始檔等,不建議手動改動。當需要開啟乙個已存在的工程時,開啟該檔案即可。 對於工程來說,這個檔案是非常重要的。這個檔案在轉移工程時,不要刪除。我們開啟別人的專案,一些設定已經儲存於此,如果只是拷貝**檔案,這些資訊就不見了,就可能導致工程無法正常開啟編譯執行。

vc++6.0

的mfc

中三個常用類

crect:用來表示矩形的類,擁有四個成員變數:top left bottom right。分別表是左上角和右下角的座標。可以通過以下的方法構造:

crect( int l, int t, int r, int b ); 指明四個座標

crect( const rect& srcrect ); 由rect結構構造

crect( lpcrect lpsrcrect ); 由rect結構構造

crect( point point, size size ); 有左上角座標和尺寸構造

crect( point topleft, point bottomright ); 有兩點座標構造

crect幾個成員函式:

int width( ) const; 得到寬度

int height( ) const; 得到高度

csize size( ) const; 得到尺寸

cpoint& topleft( ); 得到左上角座標

cpoint& bottomright( ); 得到右下角座標

cpoint centerpoint( ) const; 得當中心座標

此外矩形可以和點(cpoint)相加進行位移,和另乙個矩形相加得到「並」操作後的矩形。

cpoint:用來表示乙個的座標,有兩個成員變數:x y。 可以和另乙個點相加。

cpoint( int initx, int inity );   initx 指定x座標的值,inity 指定y座標的值。

cstring:用來表示可變長度的字串。使用cstring可不指明記憶體大小,cstring會根據需要自行分配。cstring型別的初始化:

cstring str;

cstring str1(l"abc");

cstring str2 = _t("defg");

cstring幾個成員函式:

getlength 得到字串長度

getat 得到指定位置處的字元

operator + 相當於strcat

void format( lpctstr lpszformat, ... ); 相當於sprintf

find 查詢指定字元,字串

compare 比較

comparenocase 不區分大小寫比較

makeupper 改為小寫

makelower 改為大寫

裝置環境

裝置環境dc(device context裝置環境)物件是乙個抽象的作圖環境,可能是對應螢幕,也可能是對應印表機或其它。這個環境是裝置無關的,所以你在對不同的裝置輸出時只需要使用不同的裝置環境就行了,而作圖方式可以完全不變。這也就是裝置無關性。

裝置環境dc(device context、裝置環境)是windows 應用程式與裝置驅動程式和輸出裝置(如印表機、顯示器等)之間的介面。

圖形裝置介面gdi(graphical device inte***ce)供了使用者可以呼叫的一套用於繪圖的函式集。例如,呼叫gdi函式中的ellipse函式可以繪製橢圓,呼叫textout函式可以繪製文字,呼叫rectangle函式可以繪製矩形等。mfc的cdc類對gdi 函式進行了全面的封裝,使這兩者的使用更加方便。cdc 類是乙個通用的類,可以從它派生出特定型別的dc子類。

裝置座標

圖形或文字要在物理裝置(如顯示器、印表機等)上輸出,就必須使用該物理裝置的座標系統,稱為裝置座標。裝置座標以裝置的最小分辨單位——畫素為基本單位,以左上角為座標原點,x 軸向右延伸,y 軸向下延伸,如圖所示:

如果直接使用裝置座標繪圖,由於螢幕和印表機的解析度不同,同樣是100個畫素長的一條直線,在兩種裝置上的實際輸出長度將不相同。假設程式設計師想畫一條在兩種裝置上都是10cm長的直線,將不得不針對螢幕和印表機的解析度分別計算它們各需要包含多少個裝置畫素。為了解決這個問題,在gdi 繪圖中使用了邏輯座標這一概念。邏輯座標使用的是邏輯單位,邏輯單位與裝置無關,比如邏輯單位是0.lmm ,則一條100個邏輯單位長的直線,不論是顯示在螢幕上,還是輸出到印表機上,都是10cm 長。雖然最終顯示或列印時仍然要使用畫素點(裝置座標),但乙個邏輯單位應該對映為物理裝置上的多少個畫素點,是由windows 自動處理的。

windows 提供了一些工具用於繪圖,這些工具有:畫筆(pen)、畫刷(brush)、位圖( bitmap)、字型(font)、調色盤(palette)、區域(region)等,這些都稱為gdi 物件。

mfc 中用cpen 類封裝了windows 的畫筆、用cbrush 類封裝了windows 的畫刷、用cbitmap即類封裝了windows 的點陣圖、用cfont 類封裝了windows 的字型、用cpalette 類封裝了windows 的調色盤、用crgn 類封裝了windows 的(橢圓、多邊形或者不規則區域)區域。crect類:封裝了乙個矩形(rectangle)區域及相關操作。

在視窗中輸出文字

輸出文字一般使用cdc::bool textout(int x, int y, const cstring& str)和cdc::int drawtext( const cstring& str, lprect lprect, uint nformat )兩個函式,對textout來講只能輸出單行的文字,而drawtext可以指定在乙個矩形中輸出單行或多行文字,並且可以規定對齊方式和使用何種風格。nformat可以是多種以下標記的組合(利用位或操作)以達到選擇輸出風格的目的。

vc6 0簡單使用及c 程式

1.開啟檔案 新建專案 ctrl n 2.建立工作空間 工作專案 專案檔案 建構函式 point double a,double b 建構函式 void setxy double a,double b 共有方法 void display 共有方法 void main include include ...

MFC基礎知識綜

1.在windows.h中,以cs 開頭的類樣式 class style 標示符被定義為16位的常量,這些常量都只有某1位為1.詳細解釋見 2.一種為取位址 另一種為按位與 0 0 0,0 1 0,1 0 0,1 1 1 邏輯與 用於多個條件並且成立的判斷 或 並列的意思 邏輯或 3.mf框架級源 ...

mfc基礎知識01

cstring str 123 int ival atoi str atoi str 將字串轉換為乙個整型資料,該函式定義在stdlib.h中 cstring strd 123.333333 double dval atof strd atof strd 將字串轉換為雙精度浮點型 cstring s...