亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? visual c++ mfc 簡明教程.doc

?? 本書用簡明的風(fēng)格詳細介紹了VC++環(huán)境下的MFC編程技術(shù)
?? DOC
?? 第 1 頁 / 共 5 頁
字號:
控制是用來建立Windows應(yīng)用程序用戶界面的用戶界面對象。你所見到的大部分Windows應(yīng)用程序和對話框只不過是由一些控制所組成的、用來實現(xiàn)程序功能的東西。為了建立有效的應(yīng)用程序,你必須完全理解在Windows應(yīng)用程序中應(yīng)該如何合理的使用控制。有六個基本的控制:CStatic、CButton、CEdit、CList、CComboBox和CScrollBar。另外,Windows 95又增加了15增強了的控制。你需要理解的是那個控制能做些什么、你應(yīng)該如何控制它的外表和行為以及如何讓控制能響應(yīng)用戶事件。只要掌握了這些,再加上掌握了菜單和對話框,你就可以建立你所想象的任何Windows應(yīng)用程序。你可以象本教程這樣用程序代碼來建立控制,也可以使用資源編輯器通過資源文件來建立。當(dāng)然,對話框編輯器更方便些,它對于已經(jīng)基本掌握了控制的情況下特別有用。
最簡單的控制是CStatic, 它是用來顯示靜態(tài)文本的。CStatic類沒有任何數(shù)據(jù)成員,它只有少量的成員函數(shù):構(gòu)造函數(shù)、Create函數(shù)(用于獲取和設(shè)置靜態(tài)控制上的圖標)等等。它不響應(yīng)用戶事件。因為它的簡單性,所以最好把它作為學(xué)習(xí)Windows控制的開端。
在本講中,我們從CStatic著手,看一下如何修改和定制控制。在下一講中,我們將學(xué)習(xí)CButton和CScrollBar類,以理解事件處理的概念。一旦你理解和掌握了所有控制極其類,你就可以建立完整的應(yīng)用程序了。

基  礎(chǔ)
MFC中的CStatic類是用來顯示靜態(tài)文本信息的。這些信息能夠可以作為純信息(例如,顯示在信息對話框中的錯誤消息), 或作為小的標簽等。在Windows應(yīng)用程序的文件打開對話框中,你會發(fā)現(xiàn)有六個這樣的標簽。
CStatic控制還有幾種其它的顯示格式。你可以通過修改標簽的樣式來使它表現(xiàn)為矩形、邊框或圖標等。
CStatic控制總是作為子窗口的形式出現(xiàn)的。典型情況下,其父窗口是應(yīng)用程序的主窗口或?qū)υ捒颉U缟弦恢v所介紹的,你用兩行代碼就可以建立一個靜態(tài)控制:
CStatic *cs;	
...	
cs = new CStatic();	
cs->Create("hello world",		
	   WS_CHILD|WS_VISIBLE|SS_CENTER,		
	   CRect(50,80, 150, 150),		
	   this);
這兩行代碼是典型的MFC建立所有控制的代碼。調(diào)用new來為CStatic類的事例分配內(nèi)存,然后調(diào)用類的構(gòu)造函數(shù)。構(gòu)造函數(shù)是用來完成類所需要的初始化功能的。Create函數(shù)建立控制并把它放到屏幕上。
Create函數(shù)有五個參數(shù):
lpszText: 指定了要顯示的文本。
rect:    控制文本區(qū)域的位置、大小和形狀。
pParentWnd: 指明CStatic控制的父窗口。該控制會出現(xiàn)在其父窗口中,且其位置是相對于其父窗口的用戶區(qū)域而言的。
nID:    整數(shù)值,表示該控制的標識符。
dwStyle: 最重要的參數(shù)。它控制著控制的外觀和行為。

CStatic樣式
所有的控制都有各種顯示樣式。樣式是在用Create函數(shù)建立控制時傳遞給它的dwStyle參數(shù)所決定的。對CStatic有效的樣式簡介如下:
從CWnd繼承來的樣式:
WS_CHILD  CStatic所必須的。
WS_VISIBLE  表示該控制對用戶應(yīng)該是可見的。
WS_DISABLED 表示該控制拒絕接受用戶事件。
WS_BORDER  控制的文本區(qū)域帶有邊框。
CStatic固有的樣式:
SS_BLACKFRAME 該控制區(qū)域以矩形邊界顯示。顏色與窗口框架相同。
SS_BLACKRECT ? 該控制以填充的矩形顯示。顏色與當(dāng)前的窗口框架相同。
SS_CENTER 文本居中。
SS_GRAYFRAME  控制以矩形邊框方式顯示。顏色與當(dāng)前桌面相同。
SS_GRAYRECT  該控制以填充的矩形顯示。顏色與當(dāng)前的桌面相同。
SS_ICON  控制以圖標形式顯示。文本作為圖標在資源文件的名稱。rect參數(shù)只控制位置。
SS_LEFT  文本居左顯示。文字可回繞。
SS_LEFTNOWORDWRAP 文本居左顯示。多余的文字被剪裁。
SS_NOPREFIX 表示字符串中的"&"字符不表示為加速前綴。
SS_RIGHT  文本居右顯示。文字可回繞。
SS_SIMPLE  只簡單的顯示一行文本。任何CTLCOLOR信息都被其父窗口忽略。
SS_USERITEM 用戶定義項。
SS_WHITEFRAME 控制以矩形邊框方式顯示。顏色與當(dāng)前窗口背景顏色相同。
SS_WHITERECT  控制以填充矩形方式顯示。顏色與當(dāng)前窗口背景顏色相同。
這些常數(shù)中,“SS”(Static Style)開頭的表示只能用于CStatic控制。以“WS”(Window Style)開頭的常數(shù)表示可適用于所有窗口,它們定義在CWnd對象中。CWnd中還有很多以“WS”樣式常數(shù)。你可以在MFC文檔中的CWnd::Create函數(shù)中找到它們。上面的四種是只用于CStatic對象的。
CStatic對象至少要帶有兩個樣式:WS_CHILD和WS_VISIBLE。該控制必須作為另一窗口的子窗口來建立。如果不使用WS_VISIBLE,則所建立的控制是看不見的。WS_DISABLED控制著標簽對事件的響應(yīng),因為CStatic不接收鍵盤或鼠標事件,所以使用該項是多余的。
所有的其它樣式選項都是可選的,它們控制著標簽的外觀。在CStatic::Create函數(shù)中使用這些控制,可以控制CStatic在屏幕上的顯示。

CStatic文本的外觀
下面的代碼對于理解CStatic是有幫助的。它與上一講中介紹的代碼類似,但是修改了CStatic的建立部分。 
//static1.cpp
#include <afxwin.h>

// Declare the application class
class CTestApp : public CWinApp
{
public:
	virtual BOOL InitInstance();
};

// Create an instance of the application class
CTestApp TestApp;  

// Declare the main window class
class CTestWindow : public CFrameWnd
{ 
	CStatic* cs;
public:
	CTestWindow();
};

// The InitInstance function is called
// once when the application first executes
BOOL CTestApp::InitInstance()
{
	m_pMainWnd = new CTestWindow();
	m_pMainWnd->ShowWindow(m_nCmdShow);
	m_pMainWnd->UpdateWindow();
	return TRUE;
}

// The constructor for the window class
CTestWindow::CTestWindow()
{ 
	CRect r;
	// Create the window itself
	Create(NULL, 
		"CStatic Tests", 
		WS_OVERLAPPEDWINDOW,
		CRect(0,0,200,200));
	
	// Get the size of the client rectangle
	GetClientRect(&r);
	r.InflateRect(-20,-20);
	
	// Create a static label
	cs = new CStatic();
	cs->Create("hello world",
		WS_CHILD|WS_VISIBLE|WS_BORDER|SS_CENTER,
		r,
		this);
}
下面是窗口構(gòu)造函數(shù)加上了行編號:
	CTestWindow::CTestWindow()
	{ 
		CRect r;
		
		// Create the window itself
1		Create(NULL, 
			"CStatic Tests", 
			WS_OVERLAPPEDWINDOW,
			CRect(0,0,200,200));
		// Get the size of the client rectangle
2		GetClientRect(&r);
3		r.InflateRect(-20,-20);
		// Create a static label
4		cs = new CStatic();
5		cs->Create("hello world",
			WS_CHILD|WS_VISIBLE|WS_BORDER|SS_CENTER,
			r,
			this);
	}
首先在單擊1行中調(diào)用CTestWindow::Create函數(shù)。它是CFrameWnd對象的Create函數(shù),因為CTestWindow從CFrameWnd繼承了其行為。所以第一行中的代碼指定了窗口大小應(yīng)該為200×200個象素,窗口的左上角被初始化在屏幕的0,0位置處。常數(shù)rectDefault可用CRect參數(shù)來替代。
在第2行,調(diào)用了CTestWindow::GetClientRect,向它傳遞了&r參數(shù)。GetClientRect函數(shù)是從CWnd類繼承來的。變量r是CRect類型的,并且在函數(shù)的開頭部分被說明為局部變量。
理解這段代碼時可能會有兩個問題 1) GetClientRect函數(shù)是干什么的? 2) CRect變量是干什么的? 讓我們先回答第一個問題。當(dāng)你查看MFC文檔中的CWnd::GetClientRect函數(shù)時,你會發(fā)現(xiàn)它返回一CRect類型,它包含了指定窗口的用戶區(qū)域矩形。它保存的是參數(shù)的地址&r。該地址指向CRect的位置。CRect類型是在MFC中定義的。用它處理矩形是非常方便的。如果你看以下MFC文檔,就會看到其中定義了30多種處理矩形的成員函數(shù)和操作符。
在我們的情況下,我們要在窗口中間顯示“Hello World”。因此,我們用GetClientRect來獲取用戶區(qū)域的矩形坐標。在第3行中調(diào)用了CRect::InflateRect,同時還可以增大或減少了矩形的尺寸(參見CRect::DeflateRect)。這里我們對矩形的各邊減少了20個象素。如果不這樣的話,標簽周圍邊界就會超出窗口框架。
實際上,CStatic是在第4和5行建立的。樣式屬性為居中并有邊框。其大小和位置由CRect參數(shù)r確定的。
通過修改不同的樣式屬性,你可以理解CStatic的不同形式。例如,下面的代碼包含有對CTestWindow構(gòu)造函數(shù)進行了修改,所產(chǎn)生的控制有個位移: 
CTestWindow::CTestWindow()
{ 
	CRect r;
	// Create the window itself
	Create(NULL, 
		"CStatic Tests", 
		WS_OVERLAPPEDWINDOW,
		CRect(0,0,200,200));
	
	// Get the size of the client rectangle
	GetClientRect(&r);
	r.InflateRect(-20,-20);
	
	// Create a static label
	cs = new CStatic();
	cs->Create("Now is the time for all good men to \
come to the aid of their country",
		WS_CHILD|WS_VISIBLE|WS_BORDER|SS_CENTER,
		r,
		this);
}
上面的代碼除了所顯示的文本比較長外沒有什么不同。運行該代碼你就可以看到,CStatic在指定的區(qū)域內(nèi)的文本已經(jīng)回繞了,且沒一行都是居中的。
如果邊框矩形太小不能包含所有的文本行,則文本會被剪切以適應(yīng)之。你減小矩形大小或增大字符串長度就可以看到CStatic的該特性。
在我們所看到的所有代碼中,樣式SS_CENTER是用來居中文本的。CStatic也允許左對齊或右對齊。左對齊是用SS_LEFT來替代SS_CENTER屬性。同樣,右對齊是用SS_RIGHT來取代之。
SS_LEFTNOWORDWRAP屬性是用來關(guān)閉文本回繞的。它會強迫使用左對齊屬性。

CStatic的矩形顯示模式
CStatic也支持兩種不同的矩形顯示模式:填充矩形和框架。通常用這兩種模式來把一組控制框在一起。例如,你可以把黑背景框架窗口作為一組編輯框的背景。你可以選擇六種不同的樣式: SS_BLACKFRAME、SS_BLACKRECT、SS_GRAYFRAME、SS_GRAYRECT、SS_WHITEFRAME和SS_WHITERECT。RECT形成了一個填充的矩形,而FRAME組成一邊框。其中的顏色標志,如SS_WHITERECT表示其顏色與窗口背景的顏色是相同的。盡管該顏色的缺省值是白色,但你可以使用控制面板來改變,此時矩形的顏色可能就不是白色的了。

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲私人影院在线观看| 亚洲妇熟xx妇色黄| 一区二区三区视频在线观看| 三级欧美在线一区| 懂色av一区二区三区免费看| 欧美性欧美巨大黑白大战| 久久久久综合网| 日本在线观看不卡视频| 91在线免费视频观看| 欧美videos大乳护士334| 亚洲成人免费av| 暴力调教一区二区三区| 日韩欧美二区三区| 天堂精品中文字幕在线| 色综合激情久久| 国产精品妹子av| 国产美女久久久久| 欧美mv日韩mv国产| 婷婷开心激情综合| 欧美日韩一区二区在线观看视频| 中文字幕在线不卡| 成人免费黄色在线| 国产欧美日韩视频一区二区| 理论电影国产精品| 91精品综合久久久久久| 亚洲bdsm女犯bdsm网站| 在线日韩国产精品| 亚洲图片你懂的| 成人av资源在线| 国产精品五月天| 成人免费视频一区二区| 中文字幕不卡三区| 波多野结衣中文字幕一区| 亚洲国产精品99久久久久久久久| 国产成人免费在线视频| 久久精品人人做人人综合 | 九九精品视频在线看| 制服.丝袜.亚洲.中文.综合| 婷婷夜色潮精品综合在线| 制服丝袜激情欧洲亚洲| 欧美a级一区二区| 26uuu国产一区二区三区| 久久精品噜噜噜成人88aⅴ| 精品对白一区国产伦| 国产精品亚洲成人| 日韩一区欧美小说| 欧美性videosxxxxx| av在线不卡网| 亚洲精品成人a在线观看| 一本大道久久精品懂色aⅴ| 亚洲线精品一区二区三区八戒| 欧美日韩免费在线视频| 免费人成网站在线观看欧美高清| 久久综合久久久久88| 国产成人精品亚洲午夜麻豆| 综合欧美一区二区三区| 欧美美女视频在线观看| 国产一区二区成人久久免费影院| 国产精品乱码久久久久久| 91精品福利视频| 蜜乳av一区二区三区| 欧美高清在线视频| 欧美三级乱人伦电影| 国产一区二区三区香蕉| 亚洲免费在线视频一区 二区| 91丨porny丨最新| 日韩福利电影在线观看| 国产日韩欧美麻豆| 欧美日韩性生活| 国产盗摄女厕一区二区三区| 亚洲电影视频在线| 久久久国际精品| 欧美在线免费观看亚洲| 精品一区二区免费在线观看| 亚洲三级久久久| 日韩欧美在线网站| 99视频一区二区| 久久精品国产精品亚洲综合| 国产精品国产三级国产三级人妇| 欧美一区二区日韩一区二区| 国产伦精品一区二区三区视频青涩| 一区二区三区电影在线播| 精品电影一区二区| 欧美日韩精品专区| 91丨九色丨尤物| 国产在线国偷精品免费看| 亚洲综合视频在线观看| 中文字幕第一区| 精品国产成人系列| 3d动漫精品啪啪一区二区竹菊 | 大白屁股一区二区视频| 爽好多水快深点欧美视频| 国产精品网友自拍| 日韩欧美国产电影| 91麻豆精品久久久久蜜臀| 在线视频一区二区三区| 成人免费视频免费观看| 91在线丨porny丨国产| 国产一区二区三区国产| 男男视频亚洲欧美| 日韩1区2区日韩1区2区| 亚洲国产另类精品专区| 依依成人综合视频| 国产精品乱码久久久久久| 国产亚洲欧美激情| 国产亚洲短视频| 久久久久久久综合色一本| 欧美精品一区在线观看| 精品美女在线观看| 精品久久人人做人人爰| 精品国产一区二区三区忘忧草| 日韩一区二区电影| 日韩免费福利电影在线观看| 精品国内片67194| www成人在线观看| 国产亚洲女人久久久久毛片| 26uuu精品一区二区| 国产午夜精品一区二区三区视频| 日韩精品一区二区三区老鸭窝 | 高清av一区二区| 丁香激情综合国产| av成人老司机| 波多野结衣视频一区| 色婷婷av一区二区三区软件| 欧美伊人精品成人久久综合97| 欧美图片一区二区三区| 欧美精品vⅰdeose4hd| 日韩一区二区电影| 国产午夜精品福利| 最新成人av在线| 亚洲午夜免费视频| 老司机午夜精品| 国产精品自在欧美一区| av中文字幕亚洲| 欧美午夜在线观看| 日韩久久精品一区| 国产精品免费av| 亚洲成人一区在线| 国产精品一区在线观看乱码| www.日韩大片| 欧美二区乱c少妇| 久久这里只精品最新地址| 国产精品素人一区二区| 亚洲动漫第一页| 国产一区二区调教| 色偷偷久久人人79超碰人人澡| 欧美日韩国产综合一区二区三区| 欧美一区二区三区四区视频 | 久久成人免费电影| 成人黄色a**站在线观看| 一本久道久久综合中文字幕| 国产精品视频观看| 一区二区免费视频| 免费在线观看不卡| 99精品在线免费| 日韩欧美一卡二卡| 亚洲人成在线观看一区二区| 欧美aaaaa成人免费观看视频| 成人免费视频视频在线观看免费 | 欧美在线不卡一区| 精品国产自在久精品国产| 亚洲乱码一区二区三区在线观看| 免费在线观看成人| 日本道精品一区二区三区| 久久在线观看免费| 亚洲成人动漫av| 99久久精品情趣| 久久精品夜夜夜夜久久| 日日摸夜夜添夜夜添国产精品| 成人免费观看av| www国产亚洲精品久久麻豆| 亚洲成a人片在线不卡一二三区| 国产高清久久久久| 欧美一区二区黄色| 亚洲午夜一区二区三区| 成人教育av在线| 欧美精品一区二区三区四区| 亚洲bt欧美bt精品777| 91蜜桃视频在线| 国产三级久久久| 精品亚洲国产成人av制服丝袜 | ...xxx性欧美| 狠狠色丁香九九婷婷综合五月| 欧美日韩卡一卡二| 一区二区三区四区高清精品免费观看| 国产老女人精品毛片久久| 555www色欧美视频| 亚洲成人一区二区| 欧美中文字幕一区二区三区 | 国产偷国产偷精品高清尤物| 免费视频一区二区| 91麻豆精品国产自产在线 | 欧美色网站导航| 一区二区三区四区不卡在线| 99久久精品一区| 亚洲六月丁香色婷婷综合久久 | 欧美日韩高清一区二区不卡| 亚洲精品乱码久久久久久黑人| 白白色亚洲国产精品| 国产精品不卡在线观看|