windows程序設(shè)計(jì)1_第1頁(yè)
windows程序設(shè)計(jì)1_第2頁(yè)
windows程序設(shè)計(jì)1_第3頁(yè)
windows程序設(shè)計(jì)1_第4頁(yè)
windows程序設(shè)計(jì)1_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、WINDOWS程序設(shè)計(jì)實(shí) 驗(yàn) 指 導(dǎo) 書(第2版)東北林業(yè)大學(xué)信息與計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)目 錄1 實(shí)驗(yàn)?zāi)康呐c要求12實(shí)驗(yàn)環(huán)境13 實(shí)驗(yàn)一般步驟14 實(shí)驗(yàn)時(shí)數(shù)15 實(shí)驗(yàn)內(nèi)容和要求2實(shí)驗(yàn)一 編程實(shí)現(xiàn)Windows程序框架2實(shí)驗(yàn)二 Windows窗口繪圖6實(shí)驗(yàn)三 菜單消息的接收和響應(yīng)6實(shí)驗(yàn)四 對(duì)話框基本控件的設(shè)計(jì)實(shí)現(xiàn)8 1 實(shí)驗(yàn)?zāi)康呐c要求按照“素質(zhì)教育”要求,以培養(yǎng)面向21世紀(jì)具有一定創(chuàng)新能力的人才為目標(biāo)。Windows程序設(shè)計(jì)實(shí)驗(yàn)主要為驗(yàn)證性實(shí)驗(yàn),屬于計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)及相近專業(yè)選修實(shí)踐型課程,是Windows程序設(shè)計(jì)課程的重要組成部分。通過(guò)本實(shí)驗(yàn)課程可以培養(yǎng)學(xué)生以下幾方面的能力:

2、學(xué)習(xí)windows環(huán)境下程序設(shè)計(jì)的基本方法;掌握基本的Windows API接口函數(shù);理解Windows環(huán)境下程序的基本組成及基本原理。2 實(shí)驗(yàn)環(huán)境Windows 2000/Windows XP,Visual C+ 6.0 以上版本。3 實(shí)驗(yàn)一般步驟 (1)準(zhǔn)備好實(shí)驗(yàn)所需的程序。手編程序應(yīng)書寫整齊,并經(jīng)人工檢查無(wú)誤后才能實(shí)驗(yàn),以提高實(shí)驗(yàn)效率。對(duì)程序中自己有疑問的地方,應(yīng)作出標(biāo)記,以便在上機(jī)時(shí)給予注意。初學(xué)者切忌不編程序或抄別人程序去上機(jī),應(yīng)從一開始就養(yǎng)成嚴(yán)謹(jǐn)?shù)目茖W(xué)作風(fēng)。 (2)上機(jī)輸入和調(diào)試自己所編的程序。應(yīng)該一人一組,獨(dú)立實(shí)驗(yàn)。上機(jī)過(guò)程中出現(xiàn)的問題,除了是系統(tǒng)的問題以外,一般應(yīng)獨(dú)立處理,不要

3、輕易舉手問教師。尤其對(duì)“出錯(cuò)信息”,應(yīng)善于自己分析判斷。這是學(xué)習(xí)調(diào)試程序的良好機(jī)會(huì)。 在程序調(diào)試通過(guò)后,打印輸出程序清單和運(yùn)行結(jié)果,在運(yùn)行時(shí)要注意在輸入不同數(shù)據(jù)時(shí)所得到的不同結(jié)果。此時(shí)應(yīng)運(yùn)行幾次,分別檢查在不同情況下程序是否正確。 (3)實(shí)驗(yàn)結(jié)束后,提交實(shí)驗(yàn)報(bào)告,實(shí)驗(yàn)報(bào)告應(yīng)包括以下內(nèi)容: 實(shí)驗(yàn)?zāi)康模?實(shí)驗(yàn)內(nèi)容; 程序清單(手寫或計(jì)算機(jī)打印出的程序清單); 運(yùn)行結(jié)果(必須是上面程序清單所對(duì)應(yīng)打印輸出的結(jié)果); 結(jié)果分析:對(duì)運(yùn)行情況所作的分析以及本次調(diào)試程序所取得的經(jīng)驗(yàn)。如果程序未能通過(guò),應(yīng)分析其原因。4 實(shí)驗(yàn)時(shí)數(shù)總實(shí)驗(yàn)時(shí)數(shù)不得少于8學(xué)時(shí)。5 實(shí)驗(yàn)內(nèi)容和要求實(shí)驗(yàn)一 編程實(shí)現(xiàn)Windows程序框架本

4、實(shí)驗(yàn)幫助學(xué)生理解Windows環(huán)境下程序的基本結(jié)構(gòu)。要求學(xué)生使用API接口函數(shù)設(shè)計(jì)一個(gè)窗口程序,在窗口中顯示“hello world”。 示例程序:/*#include #include /函數(shù)聲明BOOL InitWindow( HINSTANCE hInstance, int nCmdShow );LRESULT CALLBACK WinProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam );/*/函數(shù):WinMain()/功能:Win32應(yīng)用程序入口函數(shù)。創(chuàng)建主窗口,處理消息循環(huán)/*int PASCAL WinMain(

5、 HINSTANCE hInstance, /當(dāng)前實(shí)例句柄HINSTANCE hPrevInstance, /前一個(gè)實(shí)例句柄LPSTR lpCmdLine, /命令行字符int nCmdShow) /窗口顯示方式MSG msg;/創(chuàng)建主窗口if ( !InitWindow( hInstance, nCmdShow ) )return FALSE;/進(jìn)入消息循環(huán):/從該應(yīng)用程序的消息隊(duì)列中檢取消息,送到消息處理過(guò)程,/當(dāng)檢取到WM_QUIT消息時(shí),退出消息循環(huán)。while (GetMessage(&msg, NULL, 0, 0)TranslateMessage(&msg);DispatchMe

6、ssage(&msg);/程序結(jié)束return msg.wParam;/*/函數(shù):InitWindow()/功能:創(chuàng)建窗口。/*static BOOL InitWindow( HINSTANCE hInstance, int nCmdShow )HWND hwnd; /窗口句柄WNDCLASS wc; /窗口類結(jié)構(gòu)/填充窗口類結(jié)構(gòu)wc.style = CS_VREDRAW | CS_HREDRAW;wc.lpfnWndProc = (WNDPROC)WinProc;wc.cbClsExtra = 0;wc.cbWndExtra = 0;wc.hInstance = hInstance;wc.h

7、Icon = LoadIcon( hInstance, IDI_APPLICATION );wc.hCursor = LoadCursor( NULL, IDC_ARROW );wc.hbrBackground = GetStockObject(WHITE_BRUSH);wc.lpszMenuName = NULL;wc.lpszClassName = EasyWin;/注冊(cè)窗口類RegisterClass( &wc );/創(chuàng)建主窗口hwnd = CreateWindow(EasyWin, /窗口類名稱一個(gè)基本的Win32程序, /窗口標(biāo)題WS_OVERLAPPEDWINDOW, /窗口風(fēng)格,

8、定義為普通型100, /窗口位置的x坐標(biāo)100, /窗口位置的y坐標(biāo)400, /窗口的寬度300, /窗口的高度NULL, /父窗口句柄NULL, /菜單句柄hInstance, /應(yīng)用程序?qū)嵗浔鶱ULL ); /窗口創(chuàng)建數(shù)據(jù)指針if( !hwnd ) return FALSE;/顯示并更新窗口ShowWindow( hwnd, nCmdShow );UpdateWindow( hwnd );return TRUE;/*/函數(shù):WinProc()/功能:處理主窗口消息/*LRESULT CALLBACK WinProc( HWND hWnd, UINT message, WPARAM wPa

9、ram, LPARAM lParam )switch( message )case WM_KEYDOWN:/擊鍵消息switch( wParam )case VK_ESCAPE:MessageBox(hWnd,ESC鍵按下了!,Keyboard,MB_OK);break;break;case WM_RBUTTONDOWN:/鼠標(biāo)消息MessageBox(hWnd,鼠標(biāo)右鍵按下了!,Mouse,MB_OK);break;case WM_PAINT:/窗口重畫消息char hello=你好,我是EasyWin !;HDC hdc;PAINTSTRUCT ps;hdc=BeginPaint( hWn

10、d,&ps ); /取得設(shè)備環(huán)境句柄SetTextColor(hdc, RGB(0,0,255); /設(shè)置文字顏色TextOut( hdc, 20, 10, hello, strlen(hello) );/輸出文字EndPaint( hWnd, &ps ); /釋放資源break;case WM_DESTROY:/退出消息PostQuitMessage( 0 );/調(diào)用退出函數(shù)break;/調(diào)用缺省消息處理過(guò)程return DefWindowProc(hWnd, message, wParam, lParam);程序輸入完畢,即可編譯執(zhí)行。在窗口中擊鼠標(biāo)鍵或按ESC鍵時(shí),會(huì)彈出一個(gè)對(duì)話框以表示

11、你的操作。實(shí)驗(yàn)二 Windows窗口繪圖通過(guò)本實(shí)驗(yàn)?zāi)軌蚴箤W(xué)生理解Windows環(huán)境下在窗口中繪制基本圖形、顯示文本的方法。在實(shí)驗(yàn)一中設(shè)計(jì)的窗口程序的基礎(chǔ)上,能夠根據(jù)不同的菜單消息繪制直線、圓、圓弧并顯示多行文字。示例程序:說(shuō)明:在實(shí)驗(yàn)一的基礎(chǔ)上,修改WsM_PAINT消息響應(yīng)代碼,繪制直線的例子如下:caseWM_PAINT: point.x=LOWORD(lParam); point.y=HIWORD(lParam);hdc=BeginPaint(hWnd,&ps); hpen=(HPEN)GetStockObject(BLACK_PEN); SelectObject(hdc,hpen);M

12、oveToEx(hdc,Oldpoint.x,Oldpoint.y,NULL); LineTo(hdc,point.x,point.y); Oldpoint.x=point.x; /*point的值在響應(yīng)WM_MOUSEMOVE時(shí)獲取*/Oldpoint.y=point.y; EndPaint(hWnd,&ps);實(shí)驗(yàn)三 菜單消息的接收和響應(yīng)通過(guò)本實(shí)驗(yàn)幫助學(xué)生理解Windows環(huán)境下程序的消息響應(yīng)機(jī)制,掌握Windows程序中資源文件的編制及使用方法。要求學(xué)生使用文本編輯器建立菜單資源文件,自定義消息句柄,在程序中正確響應(yīng)該消息。資源文件示例:Menu.rc #define IDM_TEST

13、1 #define IDM_HELLO 2 #define IDM_GOODBYE 3 #define IDM_EXIT 4 FirstMenu MENU POPUP &PopUp MENUITEM &Say Hello,IDM_HELLO MENUITEM Say &GoodBye, IDM_GOODBYE MENUITEM SEPARATOR MENUITEM E&xit,IDM_EXIT MENUITEM &Test, IDM_TEST 上面的幾行定義了菜單項(xiàng)的ID號(hào)。只要注意菜單項(xiàng)ID號(hào)必須唯一外,您可以給ID號(hào)任何值。 用關(guān)鍵字MENU定義菜單。 POPUP &PopUp MENUI

14、TEM &Say Hello,IDM_HELLO MENUITEM Say &GoodBye, IDM_GOODBYE MENUITEM SEPARATOR MENUITEM E&xit,IDM_EXIT 定義一個(gè)有四個(gè)菜單項(xiàng)的子菜單,其中第三個(gè)菜單項(xiàng)是一個(gè)分隔線。 MENUITEM &Test, IDM_TEST 定義主菜單中的一項(xiàng)。 實(shí)驗(yàn)四 對(duì)話框基本控件的設(shè)計(jì)實(shí)現(xiàn)通過(guò)本實(shí)驗(yàn)?zāi)軌蚴箤W(xué)生理解Windows環(huán)境下對(duì)話框基本控件的類別及其實(shí)現(xiàn)方式,掌握控件消息的響應(yīng)方法。要求學(xué)生實(shí)現(xiàn)文本編輯框、按鈕、單選按鈕、復(fù)選按鈕等的資源文件的編寫,并在實(shí)現(xiàn)這些控件及其消息的響應(yīng)。 對(duì)話框資源文件示例: #

15、define APSTUDIO_READONLY_SYMBOLS / Generated from the TEXTINCLUDE 2 resource.#define APSTUDIO_HIDDEN_SYMBOLS#include windows.h#undef APSTUDIO_HIDDEN_SYMBOLS#include resource.h#undef APSTUDIO_READONLY_SYMBOLS/ Chinese (P.R.C.) resources#if !defined(AFX_RESOURCE_DLL) | defined(AFX_TARG_CHS)#ifdef _WIN

16、32LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED#pragma code_page(936)#endif /_WIN32501 MENU DISCARDABLE BEGIN POPUP 文件(&F) BEGIN MENUITEM 啟動(dòng)服務(wù)器(&S), IDM_FILELISTEN MENUITEM 啟動(dòng)客戶端(&C), IDM_FILECONNECT MENUITEM SEPARATOR MENUITEM 退出(&E), IDM_FILEEXIT END POPUP 編輯(&E) BEGIN MENUITEM 撤銷(&U), IDM_EDI

17、TUNDO MENUITEM SEPARATOR MENUITEM 剪切(&X)tCtrl+X, IDM_EDITCUT MENUITEM 復(fù)制(&C)tCtrl+C, IDM_EDITCOPY MENUITEM 粘貼(&P)tCtrl+V, IDM_EDITPASTE MENUITEM SEPARATOR MENUITEM 傳送文件(&S), IDM_TRANSPORTFILE END POPUP 幫助(&H) BEGIN MENUITEM 使用幫助(&U), IDM_HELPHELP MENUITEM SEPARATOR MENUITEM 訪問我的博客(&B), IDM_HELPMYBLO

18、G MENUITEM 關(guān)于(&A)., IDM_HELPABOUT ENDEND/ DialogIDD_DEMO DIALOG DISCARDABLE 0, 0, 247, 227STYLE DS_3DLOOK | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENUCAPTION 聊天程序FONT 9, SystemBEGIN LTEXT IP:,IDC_STATIC,4,4,8,12,NOT WS_GROUP LTEXT PORT:,IDC_STATIC,78,4,20,12,NOT WS_

19、GROUP EDITTEXT IDC_IP,16,4,60,12,ES_AUTOHSCROLL EDITTEXT IDC_PORT,100,4,28,12,ES_AUTOHSCROLL | ES_NUMBER EDITTEXT IDC_REVTXT,4,29,234,111,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | ES_WANTRETURN | WS_VSCROLL PUSHBUTTON LC,IDB_LC,130,4,60,12,BS_CENTER PUSHBUTTON QQ,IDB_QQ,194,4,20,12,BS_CENTER PUS

20、HBUTTON SEND(&S),IDB_SEND,136,200,46,12,BS_CENTER PUSHBUTTON EXIT(&X),IDCANCEL,202,200,30,12,BS_CENTER EDITTEXT IDC_SENDTXT,3,144,235,52,ES_MULTILINE | ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL EDITTEXT IDC_NICKNAME,38,198, 40,12,ES_AUTOHSCROLL LTEXT NickName,IDC_STATIC,4,200,34,12 LTEXT ,IDC_TIME,6,19,214,8END#endif / Chinese (P.R.C.) resources#ifndef APSTUDIO_INVOKED#define ID_MENU 501#define IDD_DEMO 801#define IDM_FILENEW 200#define IDM_FILEOPEN 201#define IDM_FILELIST

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論