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

正文內(nèi)容

基于mfc的局域網(wǎng)聊天工具(編輯修改稿)

2024-12-14 06:08 本頁面
 

【文章內(nèi)容簡介】 I 函數(shù)和 VC++類。 ( 3)故障處理 在遇到可預(yù)知的故障 與情況時,能提示用戶并自動退出;在遇到不可預(yù)知的故障時能安全退出。 可行性研究 成本可行性 學(xué)習(xí)研究性開發(fā),暫不考慮成本。 技術(shù)可行性 已有搭建好的基于 Windows 的軟硬件平臺,本人對 VC 開發(fā)環(huán)境有一定的了解,需繼續(xù)深入學(xué)習(xí) VC 和 Windows socket 編程。 第三章 相關(guān)開發(fā)技術(shù)的原理性說明 Win32 編程 (即 SDK 程序設(shè)計原理) 所謂的 Win32 開發(fā),就是在 C 語言的層面上,直接使用 Win32 API( Application Programming Interface:系統(tǒng)開放出來,給程序員使用的接口。) 開發(fā) Windows 應(yīng)用程序或者系統(tǒng)程序。雖 然 現(xiàn)在直接用 Win32 API 開發(fā)應(yīng)用程序的人已經(jīng)不多了,但是深入理解 Windows 系統(tǒng)程序設(shè)計原理,仍然是成為Windows 開發(fā)高手的良好途徑。所謂的 Win32,其實是一個 API 規(guī)范,與 UNIX系統(tǒng)編程接口標(biāo)準(zhǔn) POSIX 是相對應(yīng)的。下面是進(jìn)行直接的 WIN32 SDK 方式編程的基本思路或者說是一個框架。 一個 WINDOWS 程序分為程序代碼和 UI(User Interface 用戶接口 )資源兩大部分,兩部分 最后以 RC 編譯 程序編譯 為一個完整的 EXE 文件。所謂 UI 資源是指功能菜單、對話框 外貌、程序圖標(biāo)、光標(biāo)形狀等等 。這些 UI 資源的實際內(nèi)容(二進(jìn)制代碼)系借助各種工具產(chǎn)生,并以各種擴展名存在,如 .ico .bmp .cur等等。程序員必須在一個所謂的資源描述檔( .rc )中描述它們。 RC 編譯器 8 ( )讀取 RC 文件的描述后將所有 UI 資源文件集中制作出一個 .RES 文件,再與程序代碼結(jié)合在一起,這才是一個完整的 Windows 可執(zhí)行文件。如下 圖所示 : Windows 程序?qū){(diào)用許多的函數(shù),來實現(xiàn)其一定的功能, 這些函數(shù)可分為C Runtimes 以及 Windows API 兩大部分,而 API 由操作系統(tǒng)本身來提供,包括、 、 、 、 等等,前三個為 Windows 的三大模塊所對應(yīng)的 import 函數(shù)庫。 “以消息為基礎(chǔ),以事件為驅(qū)動?!?Windows 程序依靠外部發(fā)生的事件來驅(qū)動,也就是說:程序不斷的等待 消息 , 外部事件以消息的形式進(jìn)入系統(tǒng)后放入相應(yīng)的隊列, 然后 程序調(diào)用 Getmessage API 取得相應(yīng)的消息并 做出相應(yīng)的處理 。窗口是用來接受并處理消息的,每個窗口都對應(yīng)一個函數(shù)來處理消息,程序員必須設(shè)計這個窗口函數(shù) ( windows procedure) 。 如下圖所示, Windows 程序與 OS之間的關(guān)系是: Dialog Editor Image Editor Font Editor .DLG .BMP .ICO .CUR .FON .C .H .RC RC Compiler C Compiler .OBJ .DEF .RES LINKER .EXE Tool Text file Binary file .LIB C runtime DLL Import 9 一、 WinMain 函數(shù) main()函數(shù)是 C 程序的進(jìn)入點,而 WinMain 函數(shù)是 Windows 程序的進(jìn)入點 ,其函數(shù)原型為: int WINAPI WinMain ( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )。 ( 1)返回值 如果執(zhí)行成功則會返回 WM_QUIT 這個消息,并在消息的 wParam 中包含exit value, 如果是非正常退出則 exit value 是 零 。 WINAPI 與 CALLBACK、 _stdcall 相同, 是一種函數(shù)調(diào)用習(xí)慣,關(guān)系到參數(shù)進(jìn)入到堆棧的次序,以及處理堆棧的責(zé)任。 其它的函數(shù)調(diào)用習(xí)慣還有 _pascal 和_cdecl。 當(dāng)調(diào)用 WinMain 執(zhí)行程序后, WinMain 的四個參數(shù)將由操作系統(tǒng)傳世進(jìn)來。 ( 2) HINSTANCE hInstance hInstance 表示該程序當(dāng)前運行的實例句柄,這是一個數(shù)值,程序在 Windows 10 下運行時,唯一的標(biāo)識運行中的實例。 ( 3) HINSTANCE hPrevInstance, HPrevInstance 表示當(dāng)前實例的前一個實例的句柄,一般為 NULL。 ( 4) LPSTR lpCmdLine lpCmdLine 是一個以空終止的字符串,指定傳給應(yīng)用程序的命令行參數(shù)。 ( 5) int nCmdShow nCmdShow 指定程序的窗口應(yīng)該如何顯示,如最大化 ( SW_MAXIMIZE) 、最小化 ( SW_MINIMIZE) 、隱藏 ( SW_HIDE) 等。 二、 MSG 結(jié)構(gòu)體 MSG msg; 定義 了 一個 MSG 結(jié)構(gòu)體,是 Windows 內(nèi)設(shè)的一種數(shù)據(jù)格式 : Typetype struct tagMSG /*Queued message structure*/ { HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam, DWORD time, POINT pt, }MSG。 ( 1) HWND hwnd 定義句柄 ,用于識別是那個窗口函數(shù)來接收信息,即識別是那個窗口產(chǎn)生的消息。 ( 2) UINT message 用于存放一個特定消息號。 WM_xxx, 如: WM_MOUSEMOVE 。 ( 3) WPARAM wParam 和 LPARAM lParam 用于存放消息的附加信息 。( Specifies additional information about the message. The exact meaning depends on the value of the message member.) ( 4) DWORD time 消息產(chǎn)生時的時間。( Specifies the time at which the message was posted.) ( 5) POINT pt 消息產(chǎn)生時光標(biāo)在屏幕的位置。( Specifies the cursor position, in screen coordinates, when the message was posted.) 11 三、注冊窗口 RegisterClass()完成注冊窗口類的功能,設(shè)定窗口的屬性:邊框、顏色、標(biāo)題、位置等等。其函數(shù)原型為: ATOM RegisterClass( CONST WNDCLASS *lpWndClass // 指向一個 WNDCLASS結(jié)構(gòu)體的指針,在調(diào)用此函數(shù)之前需要定義一個完整的 WNDCLASS 對象。 )。 WNDCLASS 結(jié)構(gòu)體 typedef struct { UINT style, WNDPROC lpfnWndProc, int cbClsExtra, int cbWndExtra, HINSTANCE hInstance, HICON hIcon, HCURSOR hCursor, HBRUSH hbrBackground, LPCTSTR lpszMenuName, LPCTSTR lpszClassName } WNDCLASS, *PWNDCLASS。 ( 1) UINT style 指定的類樣式,可以是多個類樣式的結(jié)合。 ( 2) WNDPROC lpfnWndProc 指向 窗口過程函數(shù) 的指針, 你必須使用 CallWindowProc 功能函數(shù)調(diào)用窗口過程函數(shù) 。 ( 3) int cbClsExtra Windows 為系 統(tǒng)中的每個窗口類管理這一個 WNDCLASS 結(jié)構(gòu),在應(yīng)用程序注冊窗口類時,它可以讓 Windows OS 為 WNDCLASS 結(jié)構(gòu)分配和追加一定的附屬空間,由此類的對象共同使用,此部分空間一般初始化為 0,所以此參數(shù)一般設(shè)置為 0。 ( 4) int cbWndExtra Windows OS 為每個窗口管理著一個內(nèi)部數(shù)據(jù)結(jié)構(gòu),在注冊窗口類時,應(yīng)用程序能夠指定一定字節(jié)數(shù)的附加空間,稱為窗口附加內(nèi)存。 Windows OS 初始化 12 此部分內(nèi)存為 0。 一般此參數(shù)設(shè)置為 0,但是 如果應(yīng)用程序用 WNDCLASS 結(jié)構(gòu)注冊對話框,必須設(shè)置此值為 DLGWINDOWEXTRA。 ( 5) HINSTANCE hInstance 實例句柄。 ( 6) HICON hIcon 指向此類圖標(biāo)的句柄。此成員變量必須指向一個圖標(biāo)資源,如果為空,則指向一個默認(rèn)的 系統(tǒng) 圖標(biāo) ( 7) HCURSOR hCursor 指向此類指針的句柄。此成員變量必須指向一個指針資源,如果為空,則在光標(biāo)移動入程序窗口時,程序必須明確光標(biāo)的形狀。 ( 8) HBRUSH hbrBackground 指向背景畫刷的句柄。此成員變量 可以是 一個 物理的畫刷句柄來畫出背景,也可以是一個顏色值,但顏色 值必須是系統(tǒng)給出的標(biāo)準(zhǔn)的系統(tǒng)顏色 。系統(tǒng)給出的類型有: COLOR_ACTIVEBORDER COLOR_ACTIVECAPTION COLOR_APPWORKSPACE COLOR_BACKGROUND COLOR_BTNFACE COLOR_BTNSHADOW COLOR_BTNTEXT COLOR_CAPTIONTEXT COLOR_GRAYTEXT COLOR_HIGHLIGHT COLOR_HIGHLIGHTTEXT COLOR_INACTIVEBORDER COLOR_INACTIVECAPTION COLOR_MENU COLOR_MENUTEXT COLOR_SCROLLBAR COLOR_WINDOW COLOR_WINDOWFRAME COLOR_WINDOWTEXT ( 9) LPCTSTR lpszMenuName 13 指定菜單資源的名字,一個以空終止的字符串。如果設(shè)置為 NULL,那么這個窗口類的對象將沒有默認(rèn)菜單。 ( 10) LPCTSTR lpszClassName 指定窗口的名字,一個以空終止的字符串。 四、創(chuàng)建窗口 CreateWindow 函數(shù)可 以用于創(chuàng)建父窗口、彈出窗口以及子窗口 ,在創(chuàng)建窗口時 它 可以 確定窗口類、窗口標(biāo)題、窗口風(fēng)格、大小以及初始化位置 。其 函數(shù)原型為: HWND CreateWindow( LPCTSTR lpClassName, LPCTSTR lpWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam )。 ( 1)返回值 如果功能執(zhí)行成功,則返回新窗口的句柄;如果不成功,則返回 NULL,可以使用 GetLastErr 來獲取附加的錯誤信息。常見的錯誤信息: an invalid parameter value(錯誤的參數(shù)值 ) 、 the system class was registered by a different module( 系統(tǒng)類已被其它 的模塊注冊 ) 、 The WH_CBT hook is installed and returns a failure code、 the window procedure fails for WM_CREATE or WM_NCCREATE 等。 ( 2) LPCTSTR lpClassName 指定窗口類的名稱。 ( 3) LPCTSTR lpWindowName 指定窗口的名字。 ( 4) DWORD dwStyle 指定創(chuàng)建窗口的樣式。 14 ( 5) int x 和 int y 指定窗口左上角的 x, y 坐標(biāo)。 ( 6) int nWidth 和 int nHeight 指定窗口的寬度和高度。 ( 7) HWND hWndParent 指定創(chuàng)建窗口的父窗口句柄。 ( 8) HMENU hMenu 指定窗口菜單的句柄 ( 9) HINSTANCE hInstance 指定窗口所屬應(yīng)用程序?qū)嵗木浔? ( 10) LPVOID lpParam 作為 WM_CREATE 消息的附加參數(shù) lPa
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1