freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

windows程序設(shè)計(jì)教程(下)ppt(編輯修改稿)

2024-11-14 21:20 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 GetDlgItem來(lái)取得控制項(xiàng)的代號(hào)。 設(shè)計(jì)模態(tài)對(duì)話(huà)框的步驟 ? 1. 編寫(xiě)對(duì)話(huà)框模板 。 ? 2. 編寫(xiě)對(duì)話(huà)框函數(shù)。在 DEF文件中,把對(duì)話(huà)框函數(shù)申明為 EXPORTS(如果在對(duì)話(huà)框函數(shù)名之前加 export,在 DEF文件中可省略對(duì)話(huà)框函數(shù)申明中的 EXPORTS)。例如, EXPORTS AboutDlgProc 在 .H文件中申明對(duì)話(huà)框函數(shù)的原型 模態(tài)對(duì)話(huà)框的實(shí)例分析 最簡(jiǎn)單的模態(tài)對(duì)話(huà)框例程 程序請(qǐng)見(jiàn)( 教材程序 \11\111 ) 1. 2. 。 . 如何在窗口函數(shù)中啟動(dòng)對(duì)話(huà)框請(qǐng)見(jiàn) 教材程序 \11\在窗口函數(shù)中啟動(dòng)對(duì)話(huà)框 .doc 對(duì)話(huà)框模板和控制項(xiàng)的設(shè)計(jì) ? 雖然 Visual C++ Developer Studio中的對(duì)話(huà)框編輯器使我們幾乎不用考慮資源描述的寫(xiě)作問(wèn)題,但是學(xué)習(xí)一些資源描述的語(yǔ)法還是有用的。就對(duì)話(huà)框模板來(lái)說(shuō),知道了語(yǔ)法,您就可以進(jìn)一步了解對(duì)話(huà)框的范圍和限制。甚至當(dāng)它不能滿(mǎn)足您的需要時(shí),您還可以自己建立一個(gè)對(duì)話(huà)框模板 . 1. 對(duì)話(huà)框模板的語(yǔ)法 ? 語(yǔ)法包括: a) 窗口式樣, b) 對(duì)話(huà)框的標(biāo)題欄 , c) 為對(duì)話(huà)框添加一個(gè)功能表 (或稱(chēng)菜單 ) , d) 對(duì)話(huà)框的字體, 2. 自建對(duì)話(huà)框消息處理程序 ? 盡管對(duì)話(huà)框窗口消息處理程序通常位於Windows內(nèi)部,是內(nèi)定的,但是您也可以使用自己編寫(xiě)的對(duì)話(huà)框窗口消息處理程序來(lái)處理對(duì)話(huà)框消息。要這樣做,您必須在對(duì)話(huà)框模板中指定一個(gè)對(duì)話(huà)框的窗口類(lèi)名: CLASS classname 這種用法很少見(jiàn), 3. 用 DialogBoxIndirect函數(shù)來(lái)定義模板 ? 如果你不希望在資源描述中定義對(duì)話(huà)框模板,而希望程序在執(zhí)行期間動(dòng)態(tài)地建立對(duì)話(huà)框。那么,應(yīng)用 DialogBoxIndirect函數(shù)就能完成這一工作, DialogBoxIndirect函數(shù)用它的參數(shù)組成的結(jié)構(gòu)來(lái)定義模板。 4. 對(duì)話(huà)框中所使用控制項(xiàng)的類(lèi)型 ? 請(qǐng)見(jiàn) 教材程序 \11\對(duì)話(huà)框中所使用控制項(xiàng)的類(lèi)型 .doc。 5. 對(duì)話(huà)框中控制項(xiàng)類(lèi)型的申明格式 ? 對(duì)於這些控制項(xiàng)類(lèi)型,除了 EDITTEXT、SCROLLBAR、 LISTBOX和 COMBOBOX之外,控制項(xiàng)申明的格式為: controltype text, id, xPos, yPos, xWidth, yHeight, iStyle ? 對(duì)於 EDITTEXT、 SCROLLBAR、 LISTBOX和COMBOBOX,其格式為: controltype id, xPos, yPos, xWidth, yHeight, iStyle ? 其中沒(méi)有文字的標(biāo)題欄目。在這兩種申明中,iStyle參數(shù)都是選擇性的。 6. 用指定窗口類(lèi)和指定窗口式樣建立特殊控制項(xiàng)類(lèi)型 ? 資源編譯器可以用下面的特殊申明來(lái)建立控制項(xiàng): CONTROL text, id, class, iStyle, xPos, yPos, xWidth, yHeight 此申明允許您通過(guò)指定窗口類(lèi)和完整的窗口式樣來(lái)建立你所需要的控制項(xiàng)類(lèi)型。例如,下面的申明: PUSHBUTTON OK, IDOK, 10, 20, 32, 14 您可以使用下面的特殊申明來(lái)取代: CONTROL OK, IDOK, button, WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON | WS_TABSTOP, 10, 20, 32, 14 7. 對(duì)話(huà)框管理器是怎樣處理模板上控制項(xiàng)申明的 ? 請(qǐng)見(jiàn) 教材程序 \11\對(duì)話(huà)框管理器是怎樣處理模板上控制項(xiàng)申明的 .doc 較復(fù)雜模態(tài)對(duì)話(huà)框的例程 ? 例程請(qǐng)見(jiàn)( 教材程序 \11\112 ) 對(duì)話(huà)框函數(shù)中控制項(xiàng)的使用 ? 在第十章中,您已經(jīng)了發(fā)現(xiàn)大多數(shù)子窗口控制項(xiàng)會(huì)發(fā)送 WM_COMMAND消息給其父窗口(唯一例外的是滾動(dòng)條控制項(xiàng))。您也已經(jīng)看到,經(jīng)由父窗口發(fā)送消息給子窗口控制項(xiàng)就可以達(dá)到父窗口改變子窗口控制項(xiàng)狀態(tài)的目的。例如,選擇或不選擇單選按鈕。當(dāng)把這些方法用于對(duì)話(huà)框的時(shí)候,對(duì)話(huà)框中的控制項(xiàng)就是子窗口,對(duì)話(huà)框就是父窗口。父窗口的窗口函數(shù)似乎就是對(duì)話(huà)框函數(shù)。因此,可以用類(lèi)似方法在對(duì)話(huà)框函數(shù)中改變控制項(xiàng),例如,如果您設(shè)計(jì)了一系列單選按鈕,就可以在對(duì)話(huà)框函數(shù)中發(fā)送消息給單選按鈕,以選擇或者不選擇這些按鈕。 1. 對(duì)話(huà)框函數(shù)與子窗口控制項(xiàng)相互通信的方式 ? ABOUT2的對(duì)話(huà)框模板顯示在的 ABOUT2。RC資源描述文件中。 GROUPBOX控制項(xiàng)只是一個(gè)帶標(biāo)題(標(biāo)題為“ Color”或者“ Figure”)的分組方塊。組內(nèi)的單選按鈕都由這樣的分組方塊包圍。前一組的八個(gè)單選按鈕是互斥的,第二組的兩個(gè)單選按鈕也是如此。 2. 設(shè)定按鈕”選中”或按鈕”未選中”標(biāo)記的函數(shù) ? 如果要設(shè)定一個(gè)按鈕選中標(biāo)記,可以使用: SendMessage (hwndCtrl, BM_SETCHECK, 1, 0) 。//把按鈕控制項(xiàng)設(shè)置成”選中” 要消除一個(gè)按鈕選中標(biāo)記,您可以使用: SendMessage (hwndCtrl, BM_SETCHECK, 0, 0) 。 //把按鈕控制項(xiàng)設(shè)置成”未選中” 其中 hwndCtrl參數(shù)是按鈕子窗口控制項(xiàng)的窗口代號(hào)。 3. 取得子窗口控制項(xiàng)代號(hào)及 ID的方法 ? 要設(shè)置按鈕的”選中”與”未選中”,必須要知道按鈕控制項(xiàng)的代號(hào),否則,在對(duì)話(huà)框函數(shù)中使用這種方法是有點(diǎn)問(wèn)題的。幸運(yùn)的是, Windows為您提供了一個(gè)函數(shù),可以 從對(duì)話(huà)框代號(hào)和按鈕控制項(xiàng) ID來(lái)取得控制項(xiàng)的代號(hào): hwndCtrl = GetDlgItem (hDlg, id) 。 // 從對(duì)話(huà)框代號(hào)和按鈕控制項(xiàng) ID來(lái)取得控制項(xiàng)的窗口代號(hào): hDlg是對(duì)話(huà)框的代號(hào), id是控制項(xiàng)的 ID,返回的hwndCtrl是控制項(xiàng)的代號(hào) . 4. 單選按鈕組互斥的實(shí)現(xiàn) ? 有下面幾種辦法。 ( 1)用循環(huán)體為 SendMessage函數(shù)的 for循環(huán)實(shí)現(xiàn)按鈕組互斥 。 ( 2) 用 SendDlgItemMessage循環(huán)實(shí)現(xiàn)按鈕互斥 。 ( 3) 使用 CheckRadioButton函數(shù)實(shí)現(xiàn)按鈕互斥 5. 核取方塊控制項(xiàng)的應(yīng)用 ( 1) 用 CheckDlgButton設(shè)置 核取方塊控制項(xiàng)的狀態(tài) 。 ( 2)用 IsDlgButtonChecked詢(xún)問(wèn) 核取方塊控制項(xiàng)的狀態(tài) 6. 對(duì)話(huà)框框中“ OK”和“ Cancel”按鈕的使用 ? 請(qǐng)見(jiàn) 教材程序 \11\對(duì)話(huà)框框中 OK和CONCEL的應(yīng)用 .doc。 避免使用整體變量的方法 ? 避免使用整體變量的方法是在 typedef申明中定義一個(gè)結(jié)構(gòu),該結(jié)構(gòu)中包含對(duì)話(huà)框中的所有變量。例如,在 ABOUT2中,可以定義與“ About”方塊相聯(lián)系的結(jié)構(gòu): typedef struct { int iColor, iFigure 。 } ABOUTBOX_DATA 。//定義的結(jié)構(gòu)名 Tab鍵,游標(biāo)移動(dòng)鍵在控制項(xiàng)輸入焦點(diǎn)轉(zhuǎn)移中的應(yīng)用 ? 要使對(duì)話(huà)框中的控制項(xiàng)具有如此功能,我們必須在對(duì)話(huà)框模板中使用 WS_TABSTOP和WS_GROUP窗口式樣以達(dá)到此目的。對(duì)於所有想要使用 Tab鍵進(jìn)行輸入焦點(diǎn)轉(zhuǎn)移的控制項(xiàng),都要在其窗口式樣中指定 WS_TABSTOP。對(duì)於所有想要使用游標(biāo)移動(dòng)鍵進(jìn)行輸入焦點(diǎn)轉(zhuǎn)移的控制項(xiàng),都要在其窗口式樣中指定 WS_GROUP。 ? ? 在處理 WM_INITDIALOG消息分支中,你將輸入焦點(diǎn)設(shè)定到你希望的控制項(xiàng)上,并從消息中返回 FALSE,否則 Windows將輸入焦點(diǎn)設(shè)定為對(duì)話(huà)框內(nèi)第一個(gè)具有WS_TABSTOP式樣的控制項(xiàng)。第一個(gè)具有 WS_TABSTOP式樣的控制項(xiàng)是指資源模板中 BEGIN…END 內(nèi)最先申明的控制項(xiàng)。 2. 游標(biāo)移動(dòng)鍵轉(zhuǎn)移控制項(xiàng)的輸入焦點(diǎn) ? 要使用游標(biāo)移動(dòng)鍵,要使控制項(xiàng)獲得使用游標(biāo)移動(dòng)鍵這個(gè)功能,就必須在資源模板中控制項(xiàng)上使用 WS_GROUP窗口式樣。對(duì)於對(duì)話(huà)框模板中的特定控制項(xiàng)序列,Windows將使用游標(biāo)移動(dòng)鍵把輸入焦點(diǎn)從第一個(gè)具有 WS_GROUP式樣的控制權(quán)切換到下一個(gè)具有 WS_GROUP式樣的控制項(xiàng)中 3. 控制項(xiàng)文字欄目中“&”符號(hào)的應(yīng)用 ? 文字欄目中的“&”將導(dǎo)致緊跟其後的字母以底線(xiàn)顯示,這就增加了另一種鍵盤(pán)介面,您可以通過(guò)按底線(xiàn)字母來(lái)將輸入焦點(diǎn)移動(dòng)到任意單選按鈕上。透過(guò)按下 C(代表 Color 下拉式清單方塊)或者 F(代表 Figure 下拉式清單方塊),您可以將輸入焦點(diǎn)移動(dòng)到相對(duì)應(yīng)組內(nèi)當(dāng)前選中的單選按鈕上。 4. 用函數(shù)找尋下一個(gè)或者前一個(gè)Tab鍵停留項(xiàng)或者組項(xiàng) ? 找尋下一個(gè)或者前一個(gè) Tab鍵停留項(xiàng)或者組項(xiàng)。這些函數(shù)為: hwndCtrl = GetNextDlgTabItem (hDlg, hwndCtrl, bPrevious) 。 和 hwndCtrl = GetNextDlgGroupItem (hDlg, hwndCtrl, bPrevious) 。 如果 bPrevious為 TRUE,那么函數(shù)返回前一個(gè) Tab鍵停留項(xiàng)或組項(xiàng);如果為 FALSE,則返回下一個(gè)Tab鍵停留項(xiàng)或者組項(xiàng)。 在對(duì)話(huà)框上畫(huà)圖 ? 對(duì)話(huà)框函數(shù)調(diào)用 PaintTheBlock函數(shù),這個(gè)函數(shù)在 : PaintTheBlock (hCtrlBlock, iColor, iFigure) 。 在 AboutDlgProc中,窗口代號(hào) hCtrlBlock已經(jīng)在處理 WM_INITDIALOG消息時(shí)被設(shè)定:
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1