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

正文內容

[實習總結]c實驗報告(編輯修改稿)

2025-04-19 00:51 本頁面
 

【文章內容簡介】 個可以顯示的字符時,就產(chǎn)生了一個字符消息。按鍵消息的兩個參數(shù)wParam:包含了識別按下的鍵的虛鍵碼。lParam(32 位的變量):重復計數(shù)位(0~15 位)、OEM 掃描碼(16~23 位)、擴展鍵標志(24 位)、保留位(25~28 位)、關聯(lián)碼(29 位)、鍵的先前狀態(tài)(位30)、轉換狀態(tài)(31 位)。在WinMain 函數(shù)的消息循環(huán)中包含了TranslateMessage 函數(shù),其功能是把按鍵消息轉化為字符消息,但只有當鍵盤驅動程序把鍵盤字符映射成ASCII 碼后才能產(chǎn)生WM_CHAR 消息。字符消息系統(tǒng)字符消息:WM_SYSKEYDOWN 和WM_SYSKEYUP 按鍵消息只能產(chǎn)生系統(tǒng)消息。非系統(tǒng)字符消息:WM_KEYDOWN 和WM_KEYUP 的按鍵消息只能產(chǎn)生非系統(tǒng)消息。 鼠標在應用程序中的應用鼠標作為定位輸入設備,通過鼠標單擊、雙擊和拖動功能,用戶可以很容易地操作基于Windows 圖形界面的應用程序。Windows 中通過光標來指示當前鼠標的位置,在Windows 操作系統(tǒng)中預定義了幾種光標, 頭文件中加以定義。鼠標消息長字參數(shù)lParam 包含了鼠標位置(相當于窗口的左上角為原點的坐標值)。低位包含鼠標位置的x 坐標值高位包含鼠標位置的y 坐標字參數(shù)wParam 包含了指示各種虛鍵狀態(tài)的值 本實驗用到的新函數(shù)(相對之前的實驗)函數(shù)名作用memset初始化數(shù)組MessageBox彈出消息框GetDC獲取設備ReleaseDC釋放設備GetTextMetrics獲取字體信息SetTextColor設置字體顏色sprintf設置文本輸出格式TextOut文本輸出SetCursor設置光標(3) 總結實驗的心得體會,實驗中遇到的困難以及解決的方法等。遇到的問題: 不知道如何彈出消息框; 不知道如何動態(tài)顯示鼠標坐標; 不知道如何判定鼠標拖動。解決方法: 經(jīng)搜索相關信息找到MessageBox函數(shù)及其用法,它含有4個參數(shù),第一個HWND窗體句柄,第二個消息內容,第三個消息框名稱,第四個消息框類型; 動態(tài)顯示坐標需要用到文本輸出函數(shù)TextOut、文本格式設定函數(shù)sprinf,為了防止鼠標移動過程中鼠標數(shù)據(jù)長度不一致而引起的顯示錯誤,必須用白色文本在獲取新的坐標值前重新輸出一次,以覆蓋原有的數(shù)據(jù); 鼠標拖動必須是在鼠標左鍵按下的情況下,需要處理消息WM_LBUTTONDOWN,并且在該消息下判斷ctrl或shift是否按下后再進行相應操作,彈出響應消息框??偨Y:本次試驗的重點在于處理鼠標及鍵盤的消息處理,針對不同的按鍵消息做出不同的響應是我們的目的,還有就是學習鼠標坐標的獲取及顯示方法。通過本次試驗,掌握了兩個新的概念wParam及l(fā)Param字參數(shù)和長字參數(shù),前者包含各類消息,或者包含各種數(shù)據(jù),在API程序編寫中經(jīng)常用到。本次實驗也讓我學會了文本輸出的基礎知識,有利于往后綜合性程序的編寫。 實驗五 定時器編程實驗一、實驗目的(1) 熟悉Visual C++ 開發(fā)環(huán)境;(2) 掌握API 編程模式中定時器的使用方法(3) 熟練掌握在Visual C++ 開發(fā)環(huán)境調試程序的方法。二、實驗內容設計一個窗口,在窗口中間位置繪制一個紅色粗實線的圓角矩形,并用交替使用三種不同樣式的畫刷填充矩形的內部, 秒。三、實驗報告(1) 列出定時器操作相關的程序清單;窗口函數(shù):define ID_TIMER 1LRESULT CALLBACK WndProc(HWND hWnd,UINT messgae,WPARAM wParam,LPARAM lParam){ HDC hdc。 //設備句柄 PAINTSTRUCT PtStr。 //定義包含繪圖信息的結構體變量 HPEN hpen。 HBRUSH hbrush。 static int colors=0。switch(messgae){case WM_CREATE: SetTimer(hWnd,1,1000,NULL)。 //設置定時器 break。case WM_TIMER: //定時器消息 MessageBeep (1) 。 //產(chǎn)生一個聲音 InvalidateRect (hWnd, NULL, 1) 。 //刷新 break。case WM_PAINT: hdc=BeginPaint(hWnd,amp。PtStr)。 SetMapMode(hdc,MM_ANISOTROPIC)。 hpen=CreatePen(PS_SOLID,2,RGB(255,0,0))。 SelectObject(hdc,hpen)。 switch(colors) { case 0:hbrush=CreateSolidBrush(RGB(0,255,0))。 colors+=1。 break。 case 1:hbrush=CreateHatchBrush(HS_CROSS,RGB(0,0,255))。 colors+=1。 break。 case 2:hbrush=CreateHatchBrush(HS_DIAGCROSS,RGB(255,0,255))。 colors=0。 break。 } SelectObject(hdc,hbrush)。 RoundRect(hdc,200,100,800,400,100,60)。 DeleteObject(hpen)。 EndPaint(hWnd,amp。PtStr)。 break。 case WM_DESTROY: PostQuitMessage(0)。 KillTimer(hWnd,1)。 //釋放定時器 break。default:return DefWindowProc(hWnd,messgae,wParam,lParam)。}return 0。}運行結果:(每隔1秒變一次,無限循環(huán))(2) 總結定時器消息編程的步驟,以及程序設計過程中需要注意的問題; 定時器消息定時器時間到時,向窗口發(fā)送WM_TIMER 消息,應用程序窗口通過處理該消息來對定時器事件進行處理,該消息的參數(shù)說明如下:WM_TIMERwTimerID = wParam。 // 定時器標識符tmprc = (TIMERPROC *) lParam。 // 定時器回調函數(shù)的地址其中定時器回調函數(shù)在使用 SetTimer 啟動定時器時指定,如果沒有指定定時器回調函數(shù)則可直接處理WM_TIMER 消息。啟動定時器使用 SetTimer 函數(shù)創(chuàng)建一個定時器,并制定超時時間,然后啟動定時器。該函數(shù)說明如下:UINT SetTimer(HWND hWnd, // 創(chuàng)建定時器的窗口句柄UINT nIDEvent, // 定時器標識符UINT uElapse, // 定時時間,單位是毫秒TIMERPROC lpTimerFunc // 定時器回調函數(shù)地址)。 銷毀定時器定時器在不使用時要使用KillTimer 函數(shù)進行銷毀,該函數(shù)說明如下:BOOL KillTimer(HWND hWnd, // 創(chuàng)建定時器的窗口句柄UINT uIDEvent // 定時器標識符)。 定時器編程步驟:a) 在創(chuàng)建消息WM_CREATE里啟動定時器;case WM_CREATE: SetTimer(hWnd,1,1000,NULL)。 //設置定時器 break。b) 在定時器消息WM_TIMER里處理定時器消息case WM_TIMER: //定時器消息 MessageBeep (1) 。 //產(chǎn)生一個聲音 InvalidateRect (hWnd, NULL, 1) 。 //刷新 break。c) 每刷新一次,WM_PAINT中循環(huán)變量colors加1,加到2時返回到0,如此循環(huán)實現(xiàn)定時器的功能。 注意事項:a) 循環(huán)過程在改變變量同時,要重新創(chuàng)建畫刷填充;b) 創(chuàng)建了定時器就一定要在特定時間銷毀它,一般情況可以在關閉窗口消息中銷毀; 本實驗用到的新函數(shù)函數(shù)作用SetTimer啟動定時器KillTimer關閉定時器InvalidateRect刷新窗口RoundRect繪制圓角矩形MessageBeep產(chǎn)生一個聲音(3) 總結實驗的心得體會,實驗中遇到的困難以及解決的方法等。遇到的困難:a) 不知道在哪啟動定時器;b) 不知道如何利用定時器實現(xiàn)循環(huán)刷新;解決方法:a) 查閱課本,找到相關例程,發(fā)現(xiàn)窗口創(chuàng)建消息WM_CREATE可以用來啟動定時器;b) 要實現(xiàn)循環(huán)就必須不斷刷新窗口,并且在刷新消息WM_PAINT中循環(huán)改變畫刷顏色;心得體會: 定時器在編程中占有非常重要的作用,對于可視化的窗體,刷新窗口是經(jīng)常的事,循環(huán)播放也是常見之事,所以學會定時器對于動畫的制作有至關重要的作用; 經(jīng)過本次實驗,粗略應用了定時器來循環(huán)改變矩形的填充顏色,但若要經(jīng)常改變定時器的時間或者同時使用多個定時器的話,還應該知道定時器的ID號以及回調函數(shù)的應用,創(chuàng)建和關閉定時器也應該根據(jù)具體情況具體設定,就是說定時器不一定在創(chuàng)建窗口時啟動,也不一定在關閉窗口時關閉。 本次實驗過后,對于定時器有了大概的了解,舉一反三,以后的學習中有望學得更深入、更徹底。 實驗六 MFC 消息映射編程實驗一、實驗目的(1) 熟悉Visual C++ 開發(fā)環(huán)境;(2) 掌握消息映射機制的基本原理和手工添加消息映射的方法;(3) 熟練掌握在Visual C++ 開發(fā)環(huán)境調試程序的方法。二、實驗內容設計 MFC 應用程序,手工添加消息映射,實現(xiàn)下面的功能:(1)按下CTRL 鍵,拖動鼠標繪制矩形;(2)按下SHIFT 鍵,拖動鼠標繪制橢圓。三、實驗報告(1) 總結手工添加消息映射的基本步驟;首先在創(chuàng)建好win32 application工程以后,需要進行一些工程設置: 菜單欄》project》settings》general》Microsoft Foundation Classes》選擇“Use MFC in a static library”;編程過程按以下三個步驟進行消息映射:a) 在BEGIN_MESSAGE_MAP 和END_MESSAGE_MAP 之間添加消息映射宏;BEGIN_MESSAGE_MAP(CDemoView, CView)ON_MESSAGE(WM_LBUTTONDOWN,OnLButtonDown)ON_COMMAND(ID_OPER_TEST, OnOperTest)END_MESSAGE_MAP( )b) 在類聲明中聲明成員函數(shù);c) 在類的實現(xiàn)部分實現(xiàn)成員函數(shù)。(2) 列出鼠標繪圖功能的實現(xiàn)代碼;頭文件:include class CDemoWnd:public CFrameWnd{public://函數(shù)聲明 void OnPaint(WPARAM wParam,LPARAM lParam)。 void OnLButtonDown(WPARAM wParam,LPARAM lParam)。 void OnMouseMove(WPARAM wParam,LPARAM lParam)。public://定義成員函數(shù) int x1,y1,x2,y2。 int flag。public: CDemoWnd()。 DECLARE_MESSAGE_MAP()}。class CDemoApp:public CWinApp{public: BOOL InitInstance()。}。CDemoApp thisApp。源文件:include//入口函數(shù)BOOL CDemoApp::InitInstance(){ CDemoWnd *pDemoWnd=new CDemoWnd()。 pDem
點擊復制文檔內容
范文總結相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1