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

正文內(nèi)容

windows程序設(shè)計(jì)-全文預(yù)覽

2025-08-07 18:59 上一頁面

下一頁面
  

【正文】 章介紹滾動(dòng)條控件 ,在 windows風(fēng)格的圖形用戶界面中是一個(gè)很重要的控件 . 1 應(yīng)用程序的功能 2 建立應(yīng)用程序的工程文件 ? 工程文件類型 :MFC AppWizard(exe) ? 基于對(duì)話框的應(yīng)用程序 3 應(yīng)用程序的可視化編程部分 ? 在對(duì)話框中進(jìn)行界面設(shè)計(jì) . ? 使用滾動(dòng)條 ,按鈕 ,編輯框三種控件 ? 檢測(cè)運(yùn)行結(jié)果 ,滾動(dòng)條中的滾動(dòng)塊的初始位置不在正中 . ? 單擊按鈕沒有反應(yīng) . 4 應(yīng)用程序的代碼編程部分 ? 給編輯框和滾動(dòng)條連接變量 ? 給編輯框連接變量為 m_Edit1 ? 給滾動(dòng)條連接變量為 m_Scrollbar ? 注意其屬性 續(xù) ? 初始化滾動(dòng)條 ? 運(yùn)行應(yīng)用程序時(shí) ,一進(jìn)入主窗口 ,滾動(dòng)條的滾動(dòng)塊應(yīng)位于中間位置 ,而且滾動(dòng)條的最小值和最大值為 0和 動(dòng)塊的位置 ,即 10. ? 因此 ,必須在對(duì)話框的初始化函數(shù)中 ,對(duì)滾動(dòng)條進(jìn)行初始化 .對(duì)話框的初始化函數(shù)為OnInitDialog(). 初始化滾動(dòng)條代碼 ? (0,20)。 ()。 ? (Wele to you! This is a EditBox.)。 ? } Windows等價(jià)程序 ? 有一個(gè) include申明 ,一個(gè)程序入口點(diǎn) ,一個(gè)函數(shù)調(diào)用和一個(gè)返回語句 . ? include “” ? int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) ? { ? MessageBox(NULL,TEXT(“Hello,Windows 98!”),TEXT(“HelloMsg”),0)。 ? return 0。flag ? w WORD無符號(hào) short ? l LONG長(zhǎng)整型 ? dw DWORD無符號(hào)長(zhǎng)整型 ? fn 函數(shù) ? s string(串 ) ? sz 以 0字節(jié)結(jié)尾的串 ? h 句柄 ? p 指針 程序結(jié)構(gòu)安排 1. 注冊(cè)窗口類 2. 創(chuàng)建窗口 3. 消息循環(huán) 4. 窗口過程 5. 處理消息 注冊(cè)窗口類 ? 在為程序創(chuàng)建窗口之前 ,必須首先調(diào)用RegisterClass注冊(cè)一個(gè)窗口類 .該函數(shù)只需一個(gè)參數(shù) ,即一個(gè)指向類型為 WNDCLASS的結(jié)構(gòu)指針 . ? 在 WNDCLASS結(jié)構(gòu)中 最重要的兩個(gè)域是第二個(gè)和最后一個(gè) .第二個(gè)域是所有基于這個(gè)類來創(chuàng)建的窗口所使用的窗口過程的地址 .最后一個(gè)域是窗口類的文本名 .程序員可以隨意定義其名稱 .在只創(chuàng)建一個(gè)窗口的程序中 ,窗口類名稱通常設(shè)置為程序名稱 . 創(chuàng)建窗口 ? 窗口類定義了窗口的一般特征 ,因此可以使用同一窗口類創(chuàng)建許多不同的窗口 .實(shí)際調(diào)用CreateWindow創(chuàng)建窗口時(shí) ,可能指定有關(guān)窗口的更詳細(xì)的信息 . ? 新的 windows程序員可能有時(shí)會(huì)混淆窗口類和窗口之間的區(qū)別 ,以及為什么一個(gè)窗口的所有特征不能一步到位地指定 .實(shí)際上 ,以這種方式分開這些風(fēng)格信息是非常方便的 . ? 傳遞給 RegisterClass函數(shù)的信息在一個(gè)數(shù)據(jù)結(jié)構(gòu)中說明 ,而傳遞給 CreateWindow函數(shù)的信息作為函數(shù)的單獨(dú)參數(shù)來說明 . 顯示窗口 ? 在 CreateWindow調(diào)用返回之后 ,window內(nèi)部已經(jīng)創(chuàng)建了這個(gè)窗口 .這就是說 ,windows已經(jīng)分配了一塊內(nèi)存 ,用來保存關(guān)于在 CreateWindow調(diào)用中指定窗口的全部信息 ,再加上 windows在隨后所能找到的所有其它信息 . 消息循環(huán) ? Windows為當(dāng)前運(yùn)行的每個(gè) windows程序維護(hù)一個(gè)消息隊(duì)列 .在發(fā)生輸入事件之后 , windows將事件轉(zhuǎn)換為一個(gè)消息 ,并將消息放入程序的消息隊(duì)列中 . ? 程序通過執(zhí)行一塊被稱為消息循環(huán)的代碼從消息隊(duì)列中取出消息 . 窗口過程 ? 實(shí)際的動(dòng)作發(fā)生在窗口過程中 .窗口過程確定了在窗口的客戶區(qū)域中顯示些什么 ,以及窗口怎樣響應(yīng)用戶輸入 . ? 一個(gè) windows程序可以包含多個(gè)窗口過程 ,一個(gè)窗口過程總是與調(diào)用 RegisterClass注冊(cè)的特定窗口類相關(guān)聯(lián) .CreateWindow函數(shù)根據(jù)特定窗口類創(chuàng)建一個(gè)窗口 .但基于一個(gè)窗口類 ,可以創(chuàng)建多個(gè)窗口 . ? 程序通常不直接調(diào)用窗口過程 ,窗口過程通常由windows本身調(diào)用 . 處理消息 ? 一般來說 ,windows程序員使用 switch和case結(jié)構(gòu)來確定窗口過程接受的是什么消息 ,以及如何適當(dāng)?shù)靥幚硭?.窗口過程在處理消息時(shí) ,必須返回 理的所有消息應(yīng)該被傳給名為DefWindowProc的 windows函數(shù) .從DefWindowProc返回的值必須由窗口過程返回 . ? 調(diào)用 DefWindowProc來為窗口過程不予處理的所有消息提供默認(rèn)處理 ,這是很重要的 . WM_PAINT消息 ? 這個(gè)消息在 windows程序設(shè)計(jì)中是很重要的 .當(dāng)窗口客戶區(qū)域的一部分或者全部變?yōu)闊o效 ,以致于必須刷新時(shí) ,將由這個(gè)消息通知程序 . windows編程的難點(diǎn) ? 在為傳統(tǒng)環(huán)境編寫簡(jiǎn)單的 C程序時(shí) ,整個(gè)程序可能包含在 main函數(shù)中 ,而在 WinMain中只包含了注冊(cè)窗口類、創(chuàng)建窗口、從消息隊(duì)列中取出消息和發(fā)送消息所必須的代碼 . ? 程序的所有實(shí)際動(dòng)作均在窗口過程中發(fā)生 . ? Windows程序所做的一切都是響應(yīng)發(fā)送給窗口過程的消息 .這是概念上的主要難點(diǎn)之一 ,在開始編寫 windows程序之前 ,必須先搞清楚 . 別調(diào)用我 ,我會(huì)調(diào)用你 ? Windows也調(diào)用用戶程序 .windows通過調(diào)用窗口過程來給窗口發(fā)送一個(gè)消息 . ? 在大多數(shù) windows程序中 ,程序的主要部分都用來處理消息 .windows可以發(fā)送給窗口過程的消息通常都以 WM打頭的名字標(biāo)識(shí) ,并且都在 . 進(jìn)隊(duì)消息和不進(jìn)隊(duì)消息 ? 也就是說 ,進(jìn)隊(duì)的消息發(fā)送給消息隊(duì)列 ,而不進(jìn)隊(duì)的消息發(fā)送給窗口過程 .任何情況下 ,窗口過程都將獲得窗口所有的消息 (包括進(jìn)隊(duì)的和不進(jìn)隊(duì)的 ),窗口過程是窗口的消息中心 . 程序消息隊(duì)列 GetMessage Windows 消息 窗口過程 DispatchMessage 進(jìn)隊(duì)消息 不進(jìn)隊(duì)消息 第三章 VC++程序設(shè)計(jì)基礎(chǔ) ? 應(yīng)用程序的類型 : ? P47有詳細(xì)的描述與說明 ? 比較常用的幾種 ? 創(chuàng)建基于對(duì)話框的應(yīng)用程序 ? 過程演示 ? 使用消息框 ? 圖標(biāo)和按鈕 (組合使用 ) 其它問題 ? VC++中基本數(shù)據(jù)類型 ? Windows編程約定 ? 匈牙利命名規(guī)則 ? 其它前綴約定 ? AFX和 AppWizard前綴 第四章 制作含編輯框的應(yīng)用程序 ? 將 windows風(fēng)格中的圖形用戶界面中比較常用的重要控件的制作進(jìn)行詳細(xì)介紹 ? 本章介紹的編輯框控件 ,在 windows風(fēng)格的圖形用戶界面中是一個(gè)很重要的控件 應(yīng)用程序的功能 建立應(yīng)用程序的工程文件 ? 工程文件類型 :MFC AppWizard(exe) ? 使用動(dòng)態(tài)鏈接庫(kù)可以在應(yīng)用程序運(yùn)行的時(shí)候鏈接起來 ,而不是在編譯的時(shí)候鏈接 ,使生成的應(yīng)用程序 .exe文件比較小 . 應(yīng)用程序的可視化編程部分 ? AppWizard已經(jīng)為應(yīng)用程序生成了工程文件和工程工作區(qū)文件 ,在 example2的工作區(qū)中選擇 ResourceView選項(xiàng)卡 . ? 因?yàn)槭腔趯?duì)話框的 ,所以 AppWizard生成一個(gè)對(duì)話框窗口作為應(yīng)用程序的主窗口 ,我們要做的工作就是在這個(gè)對(duì)話框窗口中進(jìn)行界面設(shè)計(jì) . 應(yīng)用程序的代碼編程部分 ? 給編輯框連接變量 ? 每一個(gè)控件實(shí)際上就是一個(gè)對(duì)象 ,對(duì) MFC類庫(kù)中的函數(shù)調(diào)用 ,都是通過對(duì)象實(shí)現(xiàn)的 . Example2中的編輯框是從 CEdit基類中派生出來的 ,而每一個(gè)具體的編輯框控件 ,就是 CEdit對(duì)象 .在源程序中對(duì)這個(gè)對(duì)象操作 ,就是通過對(duì)它相連接的變量進(jìn)行操作來完成的 .這個(gè)連接的變量就是類中的一個(gè)成員變量 . ? 注意 :不要將 m_Edit11設(shè)為 CString類型 ,因?yàn)橹挥性O(shè)為 CEdit類型 ,才能夠調(diào)用 CEdit類中的一些成員函數(shù) . 續(xù) ? 修改編輯框的特性 ? 不能進(jìn)行多行輸入 ,只能單行輸入文本 ? 按回車鍵終止應(yīng)用程序 ? 沒有水平和垂直滾動(dòng)條 ? 其中 ,want return復(fù)選框很重要 ,如果不選擇這一項(xiàng)的話 ,在編輯框中按回車鍵 ,就會(huì)終止應(yīng)用程序 ,若選擇了這一項(xiàng)的話 ,按回車鍵就可以進(jìn)行下一行的輸入 ,實(shí)現(xiàn)多行文本的輸入 . 續(xù) ? 給 Show1按鈕連接代碼 ? 首先要給這個(gè)按鈕映射一個(gè)消息處理函數(shù) ,當(dāng)事件 “ 單擊該按鈕 ” 發(fā)生時(shí) ,發(fā)送一個(gè)消息 ,應(yīng)用程序接收到消息后 ,就執(zhí)行相應(yīng)的消息處理函數(shù) . ? (0,1)。 ? 給 Show2和 Clear2按鈕連接代碼 續(xù) ? 給按鈕 IDC_COPY_BUTTON連接代碼 ? 按鈕 IDC_COPY_BUTTON就是界面中顯示 “ ”的按鈕 ,這個(gè)按鈕表示把左邊編輯框中的內(nèi)容復(fù)制到右邊編輯框中 .在這里將用到 CEdit類中實(shí)現(xiàn)復(fù)制和拷貝功能的函數(shù) . ? 函數(shù)代碼 ? (0,1)。 ()。 ? itoa((),sPos,10)。 ? itoa()函數(shù)是把數(shù)值型變量轉(zhuǎn)換成字符型的函數(shù) 續(xù) ? 給 Exit按鈕連接代碼 ? OnOK() ? 單擊其它按鈕都沒有反應(yīng) ,因?yàn)檫€沒連接代碼 . 續(xù) ? 給滾動(dòng)條消息添加代碼 ? 在 Object IDs列表框中選擇 IDC_SCROLLBAR項(xiàng) ,發(fā)現(xiàn)在右邊的Message列表框中沒有與之對(duì)應(yīng)的消息 .所以要對(duì)滾動(dòng)條的事件進(jìn)行操作 ,必須通過其它的方式 . ? 在 ClassWizard對(duì)話框中 ,單擊 Object IDs列表框中的CExam3Dlg,選擇 Messages列表框中的 WM_HSCROLL選項(xiàng) ,雙擊該命令 ,在 Member functions編輯框中自動(dòng)加上一個(gè)成員函數(shù) OnHScroll(),而不像其它成員函數(shù)一樣 ,詢問新增函數(shù)的名稱 . ? 實(shí)際上 ,這是一個(gè)與類 CExam3Dlg相對(duì)應(yīng)的消息處理函數(shù) ,如果對(duì)話框中有多個(gè)滾動(dòng)條的話 ,那么如何確定響應(yīng)哪個(gè)滾動(dòng)條的消息呢 ? (給滾動(dòng)條消息添加代碼 )續(xù) ? void CExam3Dlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 有三個(gè)參數(shù) ,第一個(gè)參數(shù)表示對(duì)滾動(dòng)條發(fā)生的是哪一事情 ,如單擊左邊箭頭 ,或者單擊右邊箭頭等 .第二個(gè)參數(shù)表示當(dāng)前滾動(dòng)塊在滾動(dòng)條中的位置 .第三個(gè)參數(shù)表示與事件相關(guān)聯(lián)的是哪個(gè)滾動(dòng)條 . (給滾動(dòng)條消息添加代碼 )續(xù) ? 在前面講過 ,滾動(dòng)條沒有與之相對(duì)應(yīng)的事件 ,對(duì)滾動(dòng)條的操作是通過對(duì)話框的 WM_SCROLL事件 ,即在 OnHScroll()函數(shù)中編寫代碼 .那么 ,若對(duì)話框中有幾個(gè)滾動(dòng)條的話 ,我們?cè)趺创_定是對(duì)哪個(gè)滾動(dòng)條進(jìn)行操作呢 ? ? 這就需要通過一個(gè)條件判斷語句來實(shí)現(xiàn) ,函數(shù)OnHScroll()的第三個(gè)參數(shù)就是判斷與哪個(gè)滾動(dòng)條相關(guān)聯(lián) . (給滾動(dòng)條消息添加代碼 )續(xù) ? 當(dāng)拖動(dòng)滾動(dòng)條時(shí) ,參數(shù) nSBCode的值為SB_THUMBTRACK ? 當(dāng)用戶單擊滾動(dòng)條的右端箭頭時(shí) ,參數(shù) nSBCode的值為 SB_LINEDOWN ? SB_LINEUP是用戶單擊滾動(dòng)條的左端箭頭時(shí)傳遞的參數(shù) . ? SB_PAGEDOWN,SB_PAGEUP是在用戶單擊滾動(dòng)條右端 ,左端箭頭和滾動(dòng)塊之間的區(qū)域時(shí)傳遞的參數(shù) . 續(xù) ? 給 Left按鈕添加代碼 ? (0)。 ? (0,1)。 ? (“10)。 ? tNow=CTime::GetCurrentTime()。 ? } ? else ? { ? (0,1)。 ? if(m_TimeCheck==TRUE) ? { ? CTime tNow。 ? (sNow)。 續(xù) ? 給 Enable和 Disable按鈕添加代碼 ? GetDlgItem(IDC_DATE_CHECK)EnableWindow(TRUE)。 ? 前兩條語句是使復(fù)選框可選 ,在這里是調(diào)用一個(gè)指向?qū)ο蟮闹羔樅瘮?shù) .函數(shù) GetDlgItem()是 CWnd類的成員函數(shù) ,因?yàn)?CDialog類是基類 CWnd的派生類 ,而 CExam4Dlg類又是 CDialog類的派生類 ,所以 CExam4Dlg類繼承了基類CWnd的成員函數(shù) ,故可以調(diào)用 CWnd的成員函數(shù) . ? 下面兩句是使編輯框可用 ,這里是用成員變量來調(diào)用函數(shù) (給 Enable和 Disable按鈕添加代碼 )續(xù) ? 那么前面兩句是否可以用變量來調(diào)用函
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1