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

正文內(nèi)容

windows編程基礎(chǔ)新手入門資料-全文預(yù)覽

2025-07-16 23:39 上一頁面

下一頁面
  

【正文】 “繪圖信息結(jié)構(gòu)”,BeginPaint和EndPaint函數(shù)都需要PAINTSTRUCT結(jié)構(gòu)變量作為自己的參數(shù)。在窗口過程函數(shù)WndProc中,WM_PAINT消息處理通常總是從BeginPaint函數(shù)開始,而從EndPaint函數(shù)結(jié)束。所以,在創(chuàng)建窗口時(shí),會(huì)發(fā)出第一個(gè)WM_PAINT消息。在消息循環(huán)中,GetMessage函數(shù)一旦檢索到這條消息,就會(huì)返回FALSE,從而結(jié)束消息循環(huán),隨后程序也結(jié)束。為了減輕編程的負(fù)擔(dān),Windows的API提供了DefWindowProc函數(shù)來處理這些最常用的消息,調(diào)用這個(gè)函數(shù)后,這些消息將按照系統(tǒng)默認(rèn)的方式得到處理。2.消息處理用于消息處理的函數(shù)又叫窗口過程,在這個(gè)函數(shù)中,不同的消息將用switch語句分配到不同的處理程序中去。如果這兩個(gè)參數(shù)為0,則表示接收所有消息。上述結(jié)構(gòu)中的主消息表明了消息的類型,例如,是鍵盤消息還是鼠標(biāo)消息等,附消息的含義則依賴于主消息值,例如,如果主消息是鍵盤消息,那么附消息中則存儲(chǔ)了是鍵盤的哪個(gè)具體鍵的信息。 // 附消息值,其具體含義依賴于主消息值 LPARAM lParam。如果隊(duì)列中已有消息,它將取出一個(gè)后返回。GetMessage函數(shù)就是用來從應(yīng)用程序的消息隊(duì)列中按照先進(jìn)先出的原則將這些消息一個(gè)個(gè)地取出來,放進(jìn)一個(gè)MSG結(jié)構(gòu)中去。 // 轉(zhuǎn)換某些鍵盤消息 DispatchMessage (amp。 消息和消息處理1.消息循環(huán)在Win32編程中,消息循環(huán)是相當(dāng)重要的一個(gè)概念,看似很難,但使用起來卻是非常簡(jiǎn)單。要能真正把窗口顯示在屏幕上,還得使用ShowWindow函數(shù),其原型如下: BOOL ShowWindow( HWND hWnd, int nCmdShow )。其中,WS_OVERLAPPEDWINDOW表示創(chuàng)建一個(gè)層疊式窗口,有邊框、標(biāo)題欄、系統(tǒng)菜單、最大化和最小化按鈕等。實(shí)際創(chuàng)建一個(gè)窗口是通過調(diào)用CreateWindow函數(shù)完成的。否則,需要指定表示菜單資源的字符串。hbrBackground域用來定義窗口的背景畫刷顏色,也就是該窗口的背景色。然后的hInstance成員,給它的值是由WinMain傳來的應(yīng)用程序的實(shí)例句柄,表明該窗口與該實(shí)例是相關(guān)聯(lián)的。第二個(gè)域lpfnWndProc的值為WndProc。 = GetStockObject (WHITE_BRUSH) 。 = 0 。例如,有:WNDCLASS wndclass 。 // 指定窗口的背景畫刷 LPCTSTR lpszMenuName。 // 指定分配給窗口實(shí)例之后的額外字節(jié)數(shù) HINSTANCE hInstance。WNDCLASS結(jié)構(gòu)具有下列原型:typedef struct { UINT style。 注冊(cè)窗口類在為程序創(chuàng)建窗口之前,必須首先調(diào)用創(chuàng)建RegisterClass注冊(cè)應(yīng)用程序的窗口類。 // 執(zhí)行默認(rèn)的消息處理}創(chuàng)建并運(yùn)行上述程序時(shí),先創(chuàng)建一個(gè)Ex_HelloWin“空工程”,輸入上述代碼,然后編連和運(yùn)行,(里面的框是加上去的,它的區(qū)域叫“客戶區(qū)”)。 return 0 。 // 獲取窗口客戶區(qū)大小 DrawText( hdc, TEXT(Hello Windows!), 1, amp。 case WM_PAINT: hdc = BeginPaint( hwnd, amp。}LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){ HDC hdc。msg) 。 // 創(chuàng)建窗口的參數(shù) ShowWindow (hwnd, nCmdShow) 。 // 窗口類名 if (!RegisterClass (amp。 = LoadCursor (NULL, IDC_ARROW) 。 = 0 。 // 窗口句柄 MSG msg 。事實(shí)上,“窗口”就是用戶操作的區(qū)域界面,在編程中除創(chuàng)建等操作外,還要處理用戶輸入、窗口本身事件所產(chǎn)生的“消息”。在程序中使用TEXT文本,無論在何Windows環(huán)境下均可顯示正確的內(nèi)容,而不會(huì)出現(xiàn)亂碼的情形。可見,MB_ICONQUESTION 用來指定在對(duì)話框中顯示圖標(biāo),而MB_ABORTRETRYIGNORE用來指定“終止”、“重試”和“忽略”按鈕,類似這樣的預(yù)定義標(biāo)識(shí)還有很多,在以后討論到MFC中的CWnd::MessageBox函數(shù)時(shí)還要討論,故這里不再贅述。例如。 MessageBox函數(shù)MessageBox是一個(gè)Win32 API函數(shù),用來彈出一個(gè)對(duì)話框窗口,顯示短信息??v觀上述參數(shù)和類型名可以發(fā)現(xiàn)它們的命名規(guī)則:l C/C++的類型名仍保留其小寫,但新的類型都是用大寫字母來命名。卻將其改為PSTR。由于句柄唯一標(biāo)識(shí)著對(duì)應(yīng)的資源、狀態(tài)、模塊等,因而使用句柄就是使(調(diào))用相應(yīng)的資源、狀態(tài)、模塊。_cdecl調(diào)用約定:參數(shù)從右向左壓入堆棧;傳遞參數(shù)的內(nèi)存棧由調(diào)用者來維護(hù)(正因?yàn)槿绱丝蓪?shí)現(xiàn)變參函數(shù));機(jī)器碼中的函數(shù)名只在前面自動(dòng)加下劃線。_stdcall所謂“調(diào)用約定”,就是指程序生成機(jī)器碼后,函數(shù)調(diào)用的多個(gè)參數(shù)是按怎樣的次 序來傳遞,同時(shí)函數(shù)調(diào)用結(jié)束后堆棧由誰來恢復(fù),以及編譯器對(duì)函數(shù)名的修飾約定等的 協(xié)議。其原型如下:intWINAPIWinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)。 創(chuàng)建并添加程序文件 開發(fā)環(huán)境和運(yùn)行結(jié)果 頭文件include預(yù)處理指令開始,實(shí)際上在用C/C++編寫的Windows應(yīng)用程序的頭部都可以看到這樣的指令:include ,它還包含了其他一些Windows頭文件。輸完后,單擊編譯工具條上的“生成工具”按鈕或直接按F7鍵,系統(tǒng)開始對(duì)Ex_HelloMsg項(xiàng)目工程中的文件進(jìn)行編譯、連接,同時(shí)在輸出窗口中觀察出現(xiàn)的內(nèi)容,當(dāng)出現(xiàn) error(s), 0 warning(s)。單擊“確定”按鈕,系統(tǒng)將按前面的選擇自動(dòng)創(chuàng)建此應(yīng)用程序。④ 在“新建”對(duì)話框的“工程名稱”編輯框()中,輸入項(xiàng)目名稱Ex_HelloMsg,保留“平臺(tái)”下Win32復(fù)選框的默認(rèn)“選中”狀態(tài),單擊“確定”按鈕進(jìn)入下一步。選擇“工程”選項(xiàng)卡,從列表框中選中Win32 Application(Win32 應(yīng)用程序)項(xiàng)()。單擊“下一條”按鈕,可看到有關(guān)各種操作的提示。 Windows等價(jià)程序等價(jià)的Windows程序可以寫成: include int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int nCmdShow){ MessageBox (NULL, TEXT(Hello, World!), TEXT(Hello), 0) 。 /* 指定返回值 */}事實(shí)上,該程序已包括C程序中最常用的include指令、必須的程序入口main函數(shù)、庫函數(shù)printf調(diào)用和return語句。事實(shí)上,無論是哪種編程方式,人們最關(guān)心的內(nèi)容有三個(gè):一是程序入口,二是窗口、資源等的創(chuàng)建和使用,三是鍵盤、鼠標(biāo)等所產(chǎn)生的事件或消息的接收和處理。21第1章 Windows編程基礎(chǔ)Windows編程基礎(chǔ)基于Windows的編程方式有兩種。另一種是使用“封裝”方式,例如Visual C++的MFC方式,它是將SDK中的絕大多數(shù)函數(shù)、數(shù)據(jù)等按C++“類”的形式進(jìn)行封裝,并提供相應(yīng)的應(yīng)用程序框架和編程操作。 /* 輸出 */ return 0。特別地,由于目前所在的Windows環(huán)境基本上都是32位,所以這里的Windows程序平臺(tái)就是Win32,Windows編程可直接理解為是Win32編程。第一次運(yùn)行時(shí),“每日提示”對(duì)話框。② 選擇“文件”→“新建”菜單命令,打開應(yīng)用程序向?qū)?,顯示出“新建”對(duì)話框。需要說明的是,為了便于程序的管理和查找,本書所涉及的程序均放入Visual C++ “Visual C++程序”中,第1章程序放入子文件夾“第1章”中,第2章程序放入子文件夾“第2章”,依此類推。 “新建”對(duì)話框“工程”選項(xiàng)卡 “選擇目錄”對(duì)話框⑥ 選中“一個(gè)空工程”,單擊“完成”按鈕,彈出“新建工程信息”對(duì)話框。⑧ 單擊“確定”按鈕,同時(shí)打開該文件窗口。單擊“確定”按鈕,Hello對(duì)話框退出。但在Windows程序中,這個(gè)入口函數(shù)由WinMain來代替。WINAPI是一種“調(diào)用約定”宏,:define WINAPI _特別地,Visual C++的MFC方式卻采用了_在Windows編程中,句柄是一個(gè)應(yīng)用程序用來識(shí)別某些資源、狀態(tài)、模塊等的數(shù)字。③ WinMain函數(shù)的第三個(gè)參數(shù)lpCmdLine用來指定程序的命令行,其參數(shù)類型為L(zhǎng)PSTR。④ WinMain函數(shù)的第四個(gè)參數(shù)nShowCmd用來指定程序最初顯示的方式,它可以是正常、最大化或最小化來顯示程序窗口。例如,hPrevInstance則是由前綴h(表示“句柄”類型)+狀態(tài)Prev(表示“以前的”)+屬性Instance(表示“實(shí)例”
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1