




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
數(shù)字媒體學(xué)院上機(jī)實(shí)驗(yàn)報告I課程名稱:程序設(shè)計(jì)II班級:實(shí)驗(yàn)日期:姓名:學(xué)號:指導(dǎo)教師:實(shí)驗(yàn)序號:01實(shí)驗(yàn)成績:一、實(shí)驗(yàn)名稱:測試創(chuàng)建函數(shù)二、實(shí)驗(yàn)?zāi)康募耙笫煜indows程序設(shè)計(jì)掌握VS的使用了解程序窗口的設(shè)計(jì)三、實(shí)驗(yàn)環(huán)境:VS2012四、實(shí)驗(yàn)內(nèi)容編制一個程序,設(shè)計(jì)一個程序窗口,測試創(chuàng)建函數(shù)的風(fēng)格參數(shù),簡單總結(jié)窗口有哪些風(fēng)格。五、算法描述及實(shí)驗(yàn)步驟創(chuàng)建一個基于對話框的項(xiàng)目給對話框加入相應(yīng)的操作按鈕給按鈕加上代碼,設(shè)置屬性為實(shí)現(xiàn)操作添加必要函數(shù)六、調(diào)試過程及實(shí)驗(yàn)結(jié)果我就只是在源代碼里面更改了幾次風(fēng)格參數(shù)的代碼,看了下效果,并將風(fēng)格參數(shù)總結(jié)成了一份word文檔。七、總結(jié)本次實(shí)驗(yàn),我掌握了一些具體函數(shù)的定義和調(diào)用方法。在操作的過程中深刻地體會到函數(shù)調(diào)用的便捷。通過vs使用,我親自感受并實(shí)踐了程序設(shè)計(jì)的思想,同時對vs程序設(shè)計(jì)也有了總體的認(rèn)識。此外,編寫程序的嚴(yán)謹(jǐn)思想也令我深深地感受一絲不茍地工作的重要性。八、附錄LRESULTCALLBACKWndProc(HWNDhwnd,UINTmessage,WPARAMwParam,LPARAMIParam){hdcrectHDChdcrectPAINTSTRUCTRECTswitch(message){caseWM_CREATE:PlaySound(TEXT("123.wav"),NULL,SND_FILENAME|SND_ASYNC)return0;caseWM_PAINT:hdc=BeginPaint(hwnd,&ps);GetClientRect(hwnd,&rect);DrawText(hdc,TEXT("Hello,Windows7!”),-1,&rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER)EndPaint(EndPaint(hwnd&ps)return0caseWMDESTROY:PostQuitMessagecaseWMDESTROY:PostQuitMessage(0)return0returnDefWindowProc(hwnd,message,wParam,lParamreturnDefWindowProc運(yùn)行結(jié)果截圖:■3TheHelloProgramHello,Windows7!上機(jī)實(shí)驗(yàn)報告II課程名稱:程序設(shè)計(jì)II班級:實(shí)驗(yàn)日期:姓名:學(xué)號:指導(dǎo)教師:實(shí)驗(yàn)序號:02實(shí)驗(yàn)成績:一、實(shí)驗(yàn)名稱:繪制小船二、實(shí)驗(yàn)?zāi)康募耙笳莆誚S的使用了解程序窗口的設(shè)計(jì)熟悉圖形設(shè)備接口、繪圖和文字三、實(shí)驗(yàn)環(huán)境:VS2012四、實(shí)驗(yàn)內(nèi)容繪制一艘小船,有顏色的帆船,標(biāo)注船長,有坐標(biāo)系。五、算法描述及實(shí)驗(yàn)步驟創(chuàng)建一個基于對話框的項(xiàng)目確定船的各點(diǎn)之間的坐標(biāo)關(guān)系利用函數(shù)將船的坐標(biāo)關(guān)系繪制出來填充顏色六、調(diào)試過程及實(shí)驗(yàn)結(jié)果起初畫船身的時候,坐標(biāo)沒算好,船是奇形怪狀的,后來經(jīng)過研究確定了坐標(biāo),確定每個坐標(biāo)點(diǎn)比較繁瑣,花了比較多的時間,而且中間因?yàn)橛?jì)算錯誤更改了很多次。各個圖形建的順序不清楚,也很奇怪,后來解決了。后來顏色也不會填,通過問別人和百度解決了。七、總結(jié)這次實(shí)驗(yàn)是圖形的繪制,本次實(shí)驗(yàn)內(nèi)容很多,既要打開文件讀取數(shù)據(jù),又要繪制坐標(biāo),軸,坐標(biāo)刻度,還要對坐標(biāo)進(jìn)行轉(zhuǎn)化,比較麻煩,將它們完美地融合在一起卻不簡單。這已經(jīng)是第二個實(shí)驗(yàn)了,也學(xué)了編程的知識,雖然有的函數(shù),代碼我知道它是什么功能,我會用,但卻不是很理解,將所學(xué)進(jìn)行改編融合這方面我還是很欠缺的。這個程序雖然是寫完了,結(jié)果也運(yùn)行出來了,但我知道它是寫的很糟糕的,類只是函數(shù)的堆砌,完全算不上真正的類,運(yùn)行也存在很大的問題。剛開始編譯時還有好多錯誤,多編譯幾次竟然就通過了,但是通過之后有時是彈出兩個或多個打開文件的對話框,有時是一個,往往還伴隨著黑屏。我想應(yīng)該是數(shù)據(jù)讀取的函數(shù)調(diào)用有問題,具體是什么原因還不是很清楚,明天上午再去請教同學(xué)吧。八、附錄LRESULTCALLBACKWndProc(HWNDhwnd,UINTmessage,WPARAMwParam,LPARAMIParam){staticTCHARszBuffer[8]=TEXT("船有20米長?!?;TEXTMETRICtm;staticintcxChar,cyChar;staticPOINTBoatFigure[4]staticintcxClient,cyClient;HDChdc;inti,j;PAINTSTRUCTps;POINTBoat[4];staticintCloudFigure[12][4];intCloud[12][4];staticPOINTPoleFigure[4];POINTPole[4];staticPOINTFlagFigure[3];POINTFlag[3];staticintBubbleFigure[3][4]intBubble[3][4];staticPOINTArrowFigure[4][3];POINTArrow[4][3];HBRUSHhOrangeBrush,hBlueBrush,hBrownBrush,hRedBrush;switch(message){caseWM_SIZE:cxClient=LOWORD(lParam);cyClient=HIWORD(lParam);return0;//////////////////////////////////////////caseWM_PAINT:hdc=BeginPaint(hwnd,&ps);GetTextMetrics(hdc,&tm);cxChar=tm.tmAveCharWidth;cyChar=tm.tmHeight+tm.tmExternalLeading;SetMapMode(hdc,MM_ISOTROPIC);SetWindowExtEx(hdc,cxClient/2,cyClient/2,NULL);SetViewportExtEx(hdc,cxClient/2,-cyClient/2,NULL);SetViewportOrgEx(hdc,cxClient/2,cyClient/2,NULL);for(i=0;i<4;i++){Boat[i].x=cxClient*BoatFigure[i].x/70;Boat[i].y=cyClient*BoatFigure[i].y/40;Pole[i].x=cxClient*PoleFigure[i].x/140;Pole[i].y=cyClient*PoleFigure[i].y/40;}for(i=0;i<3;i++){Flag[i].x=cxClient*FlagFigure[i].x/70;Flag[i].y=cyClient*FlagFigure[i].y/40;}for(i=0;i<3;i++){Bubble[i][0]=cxClient*BubbleFigure[i][0]/70;Bubble[i][1]=cyClient*BubbleFigure[i][1]/40;Bubble[i][2]=cxClient*BubbleFigure[i][2]/70;Bubble[i][3]=cyClient*BubbleFigure[i][3]/40;}for(i=0;i<12;i++){Cloud[i][0]=cxClient*CloudFigure[i][0]/70;Cloud[i][1]=cyClient*CloudFigure[i][1]/40;Cloud[i][2]=cxClient*CloudFigure[i][2]/70;Cloud[i][3]=cyClient*CloudFigure[i][3]/40;}for(i=0;i<4;i++)for(j=0;j<3;j++){Arrow[i][j].x=cxClient*ArrowFigure[i][j].x/140;Arrow[i][j].y=cyClient*ArrowFigure[i][j].y/80;}SelectObject(hdc,hBlueBrush);SetPolyFillMode(hdc,ALTERNATE);for(i=0;i<11;i++)Ellipse(hdc,Cloud[i][0],Cloud[i][1],Cloud[i][2],Cloud[i][3]);for(i=0;i<3;i++)Ellipse(hdc,Bubble[i][0],Bubble[i][1],Bubble[i][2],Bubble[i][3]);SelectObject(hdc,GetStockObject(NULL_PEN));Ellipse(hdc,Cloud[11][0],Cloud[11][1],Cloud[11][2],Cloud[11][3]);DeleteObject(hBlueBrush);SelectObject(hdc,hOrangeBrush);Polygon(hdc,Boat,4);DeleteObject(hOrangeBrush);SelectObject(hdc,hBrownBrush);Polygon(hdc,Pole,4);DeleteObject(hBrownBrush);SelectObject(hdc,hRedBrush);Polygon(hdc,Flag,3);DeleteObject(hRedBrush);SelectObject(hdc,GetStockObject(BLACK_BRUSH));for(i=0;i<4;i++)Polygon(hdc,Arrow[i],3);SelectObject(hdc,GetStockObject(BLACK_PEN));MoveToEx(hdc,cxClient*(-29)/70,0,NULL);LineTo(hdc,cxClient*24/70,0);MoveToEx(hdc,0,cyClient*18/40,NULL);LineTo(hdc,0,cyClient*(-16)/40);MoveToEx(hdc,cxClient*(-14)/70,cyClient*(-3)/40,NULL);LineTo(hdc,cxClient*(-14)/70,cyClient*(-19)/40);MoveToEx(hdc,cxClient*18/70,cyClient*(-3)/40,NULL);LineTo(hdc,cxClient*18/70,cyClient*(-19)/40);MoveToEx(hdc,cxClient*(-14)/70,cyClient*(-18)/40,NULL);LineTo(hdc,cxClient*18/70,cyClient*(-18)/40);SetTextColor(hdc,RGB(255,66,67));TextOut(hdc,-3*cxChar,cyClient*(-18)/40+cyChar,szBuffer,lstrlen(szBuffer));EndPaint(hwnd,&ps);return0;////////////////////////////caseWM_DESTROY:PostQuitMessage(0);return0;}returnDefWindowProc(hwnd,message,wParam,lParam);}運(yùn)行結(jié)果截圖:課程名稱:程序設(shè)計(jì)II班級:實(shí)驗(yàn)日期:姓名:學(xué)號:指導(dǎo)教師:實(shí)驗(yàn)序號:03實(shí)驗(yàn)成績:一、實(shí)驗(yàn)名稱:重現(xiàn)基本文本編輯器二、實(shí)驗(yàn)?zāi)康募耙笳莆誚S的使用了解程序窗口的設(shè)計(jì)掌握本編輯器的基本函數(shù)調(diào)用三、實(shí)驗(yàn)環(huán)境:VS2012四、實(shí)驗(yàn)內(nèi)容創(chuàng)建一個簡單的程序窗口,并創(chuàng)建編輯類的子窗口,捕獲光標(biāo)位置后可以此輸入文字——基本文本編輯框五、算法描述及實(shí)驗(yàn)步驟創(chuàng)建一個Win32的項(xiàng)目—給頭文件添加一個新建項(xiàng)—定義主函數(shù)—在主函數(shù)中為實(shí)現(xiàn)操作添加必要函數(shù)(Loadicon;LoadCursor;GetStockObject;MessageBox;CreateWindow;CreateFont;GetTextMetrics;max;SendMessage等)六、調(diào)試過程及實(shí)驗(yàn)結(jié)果在寫編輯類子窗口的代碼時沒有遇到太大的困難,不過在捕獲鼠標(biāo)的位置時花了比較多的時間,對照了書上的代碼,借鑒了一個書配套光盤的已經(jīng)寫好的基本文本編輯器的代碼,才把程序?qū)懞?。七、總結(jié)小小一個鼠標(biāo)捕獲看似我們用得已經(jīng)沒有知覺的操作也是相當(dāng)復(fù)雜的,這是我最深的感受。程序使用了等寬字體,如果使用變寬的話,太難了。八、附錄LRESULTCALLBACKWndProc(HWNDhwnd,UINTmessage,WPARAMwParam,LPARAMIParam){staticDWORDdwCharSet=DEFAULT_CHARSET;staticintcxChar,cyChar,cxClient,cyClient,cxBuffer,cyBuffer,xCaret,yCaret;staticTCHAR*pBuffer=NULL;TOC\o"1-5"\h\zHDChdc;intx,y,i;PAINTSTRUCTps;TEXTMETRICtm;switch(message){caseWM_INPUTLANGCHANGE:dwCharSet=wParam;//fallthroughcaseWM_CREATE:hdc=GetDC(hwnd);SelectObject(hdc,CreateFont(0,0,0,0,0,0,0,0,dwCharSet,0,0,0,FIXED_PITCH,NULL));GetTextMetrics(hdc,&tm);cxChar=tm.tmAveCharWidth;cyChar=tm.tmHeight;DeleteObject(SelectObject(hdc,GetStockObject(SYSTEM_FONT)));ReleaseDC(hwnd,hdc);//fallthroughcaseWM_SIZE://obtainwindowsizeinpixelsif(.essage==WM_SIZE){cxClient=LOWORD(lParam);cyClient=HIWORD(lParam);}//calculatewindowsizeincharacterscxBuffer=max(1,cxClient/cxChar);cyBuffer=max(1,cyClient/cyChar);//allocatememoryforbufferandclearitif(pBuffer!=NULL)free(pBuffer);pBuffer=(TCHAR*)malloc(cxBuffer*cyBuffer*sizeof(TCHAR));for(y=0;y<cyBuffer;y++)for(x=0;x<cxBuffer;x++)BUFFER(x,y)='';//setcarettoupperleftcornerxCaret=0;yCaret=0;if(hwnd==GetFocus())SetCaretPos(xCaret*cxChar,yCaret*cyChar);InvalidateRect(hwnd,NULL,TRUE);return0;caseWM_SETFOCUS://createandshowthecaretCreateCaret(hwnd,NULL,cxChar,cyChar);SetCaretPos(xCaret*cxChar,yCaret*cyChar);ShowCaret(hwnd);return0;caseWM_KILLFOCUS://hideanddestroythecaretHideCaret(hwnd);DestroyCaret();return0;caseWM_KEYDOWN:switch(wParam){caseVK_HOME:xCaret=0;break;caseVK_END:xCaret=cxBuffer-1;break;caseVK_PRIOR:yCaret=0;break;caseVK_NEXT:yCaret=cyBuffer-1;break;caseVK_LEFT:xCaret=max(xCaret-1,0);break;caseVK_RIGHT:xCaret=min(xCaret+1,cxBuffer-1);break;caseVK_UP:yCaret=max(yCaret-1,0);break;caseVKDOWN:
yCaret=min(yCaret+1,cyBuffer-1);break;caseVK_DELETE:for(x=xCaret;x<cxBuffer-1;x++)BUFFER(x,yCaret)=BUFFER(x+1,yCaret);BUFFER(cxBuffer-1,yCaret)='';HideCaret(hwnd);hdc=GetDC(hwnd);SelectObject(hdc,CreateFont(0,0,0,0,0,0,0,0,dwCharSet,0,0,0,FIXED_PITCH,NULL));TextOut(hdc,xCaret*cxChar,yCaret*cyChar,&BUFFER(xCaret,yCaret),cxBuffer-xCaret);DeleteObject(SelectObject(hdc,GetStockObject(SYSTEM_FONT)))ReleaseDC(hwnd,hdc);ShowCaret(hwnd);break;}SetCaretPos(xCaret*cxChar,yCaret*cyChar);return0;caseWMCHAR:(lParam);i++)for(i=0;i<(int)LOWORDswitch(wParam)xCaret=0;case'\b':if(xCaret>0)//backspacexCaret--SendMessage(hwndWM_KEYDOWN,VK_DELETE,1)breakcase'\t'://tabdoSendMessage(hwndWM_CHAR,'',1)casewhile(xCaret%8!=0)break'\n':if(++yCaret==cyBuffer)//linefeedyCaret=0breakcase'\r'://carriagereturnif(++yCaret==cyBuffer)yCaret=0;break;case'\x1B'://escapefor(y=0;y<cyBuffer;y++)for(x=0;x<cxBuffer;x++)BUFFER(x,y)='';xCaret=0;yCaret=0;InvalidateRect(hwnd,NULL,FALSE);break;default://charactercodesBUFFER(xCaret,yCaret)=(TCHAR)wParam;HideCaret(hwnd);(lParam);i++)case'\b':if(xCaret>0)//backspacexCaret--SendMessage(hwndWM_KEYDOWN,VK_DELETE,1)breakcase'\t'://tabdoSendMessage(hwndWM_CHAR,'',1)casewhile(xCaret%8!=0)break'\n':if(++yCaret==cyBuffer)//linefeedyCaret=0breakcase'\r'://carriagereturnSelectObject(hdc,GetStockObject(SYSTEM_FONT)))ReleaseDC(hwnd,hdc);ShowCaret(hwnd);if(++xCaret==cxBuffer){xCaret=0;if(++yCaret==cyBuffer)yCaret=0;}break;}}SetCaretPos(xCaret*cxChar,yCaret*cyChar);return0;caseWM_PAINT:hdc=BeginPaint(hwnd,&ps);SelectObject(hdc,CreateFont(0,0,0,0,0,0,0,0,dwCharSet,0,0,0,FIXED_PITCH,NULL))for(y=0;y<cyBuffer;y++)TextOut(hdc,0,y*cyChar,&BUFFER(0,y),cxBuffer);DeleteObject(SelectObject(hdc,GetStockObject(SYSTEM_FONT)))EndPaint(hwnd,&ps);
上機(jī)實(shí)驗(yàn)報告IV課程名稱:程序設(shè)計(jì)II班級:實(shí)驗(yàn)日期:姓名:學(xué)號:指導(dǎo)教師:實(shí)驗(yàn)序號:04實(shí)驗(yàn)成績:一、實(shí)驗(yàn)名稱:重現(xiàn)基本調(diào)色板二、實(shí)驗(yàn)?zāi)康募耙笳莆誚S的使用了解程序窗口的設(shè)計(jì)了解系統(tǒng)顏色設(shè)置函數(shù)使用三、實(shí)驗(yàn)環(huán)境:VS2012四、實(shí)驗(yàn)內(nèi)容創(chuàng)建一個簡單的程序窗口,上面具有調(diào)色板功能的各種按扭(可適當(dāng)簡單化)五、算法描述及實(shí)驗(yàn)步驟(1)移動滾動條模塊主要是可以通過移動滾動條改變RGB的值來實(shí)現(xiàn)想要得到的顏色。⑵輸入比例值模塊主要是可以通過輸入比例值改變RGB的值來實(shí)現(xiàn)想要得到的顏色。(3)選取圖片模塊主要是可以選取圖片,點(diǎn)擊圖片的某個位置會返回點(diǎn)擊圖片位置的顏色和RGB值。(4)記錄剛才調(diào)制好的顏色六、調(diào)試過程及實(shí)驗(yàn)結(jié)果。剛開始對整體的設(shè)計(jì)沒有想法,后來由于自己能力有限,所以設(shè)置個拖動條的用來改變顏色,雖然對Windows程序還是不理解,但是勉強(qiáng)接受了它的想法。拖動條運(yùn)動時對于顏色的調(diào)整有問題,不知道怎么實(shí)現(xiàn),后來進(jìn)過復(fù)雜的過程,成功地運(yùn)行了七、總結(jié)通過這次程序設(shè)計(jì)讓我對vs有了進(jìn)一步的了解。通過慢慢學(xué)習(xí),查閱課本,不斷的練習(xí)操作,讓我進(jìn)一步掌握所學(xué)過的知識。通過這次設(shè)計(jì)讓我得到了很多鍛煉,比如:如何去查閱自己所需要的資料,如何去解決所遇到的問題。讓我的能力得到了進(jìn)一步的提升。八、附錄LRESULTCALLBACKWndProc(HWNDhwnd,UINTmessage,WPARAMwParam,LPARAMIParam)staticCOLORREFcrPrim[3]=(RGB(255,0,0),RGB(0,255,0),RGB(0,0,255)};staticHBRUSHhBrush[3],hBrushStaticstaticHWNDhwndScroll[3],hwndLabel[3],hwndValue[3],hwndRect;staticintcolor[3],cyChar;staticRECTrcColor;staticTCHAR*szColorLabel[]=(TEXT("Red"),TEXT("Green"),TEXT("Blue")};HINSTANCEhInstance;inti,cxClient,cyClient;TCHARszBuffer[10];switch(message){caseWM_CREATE:hInstance=(HINSTANCE)GetWindowLong(hwn(,GWL_HINSTANCE);hwndRect=CreateWindow(TEXT("static"),NULLWS_CHILD|WS_VISIBLE|SS_WHITERECT,0,0,0,0,hwnd,(HMENU)9,hInstance,NULL);for(i=0;i<3;i++){hwndScroll[i]=CreateWindow(TEXT("scrollbar"),NULLWS_CHILD|WS_VISIBLE|WS_TABSTOP|SBS_VERT,0,0,0,0,hwnd,(HMENU)i,hInstance,NULL)SetScrollRange(hwndScroll[i],SB_CTL,0,255,FALSE);SetScrollPos(hwndScroll[i],SB_CTL,0,FALSE);hwndLabel[i]=CreateWindow(TEXT("static"),szColorLabel[i],WS_CHILD|WS_VISIBLE|SS_CENTER,0,0,0,0,hwnd,(HMENU)(i+3),hInstance,NULL);hwndValue[i]=CreateWindow(TEXT("static"),TEXT("0"),WS_CHILD|WS_VISIBLE|SS_CENTER,0,0,0,0,hwnd,(HMENU)(i+6),hInstance,NULL);OldScroll[i]=(WNDPROC)SetWindowLong(hwndScroll[i],GWLWNDPROC,(LONG)ScrollProc);hBrush[i]=CreateSolidBrush(crPrim[i]);}hBrushStatic=CreateSolidBrush(GetSysColor(COLOR_BTNHIGHLIGHT));cyChar=HIWORD(GetDialogBaseUnits());return0;caseWM_SIZE:cxClient=LOWORD(lParam);cyClient=HIWORD(lParam);SetRect(&rcColor,cxClient/2,0,cxClient,cyClient);MoveWindow(hwndRect,0,0,cxClient/2,cyClient,TRUE);for(i=0;i<3;i++){MoveWindow(hwndScroll[i],(2*i+1)*cxClient/14,2*cyChar,cxClient/14,cyClient-4*cyChar,TRUE)MoveWindow(hwndLabel[i],(4*i+1)*cxClient/28,cyChar/2,cxClient/7,cyChar,TRUE);MoveWindow(hwndValue[i],(4*i+1)*cxClient/28,cyClient-3*cyChar/2,cxClient/7,cyChar,TRUE);}SetFocus(hwnd);return0;caseWM_SETFOCUS:SetFocus(hwndScroll[idFocus]);return0;caseWM_VSCROLL:i=GetWindowLong((HWND)lParam,GWL_ID);switch(LOWORD(wParam)){caseSB_PAGEDOWN:color[i]+=15;caseSB_LINEDOWN:color[i]=min(255,color[i]+1);break;caseSB_PAGEUP:color[i]-=15;caseSB_LINEUP:color[i]=max(0,color[i]-1);break;caseSBTOP:color[i]=0;break;caseSB_BOTTOM:color[i]=255;break;caseSB_THUMBPOSITION:caseSB_THUMBTRACK:color[i]=HIWORD(wParam);break;default:break;}SetScrollPos(hwndScroll[i],SB_CTL,color[i],TRUE);wsprintf(szBuffer,TEXT("%i"),color[i]);SetWindowText(hwndValue[i],szBuffer);DeleteObject((HBRUSH)SetClassLong(iwnd,GCL_HBRBACKGROUND,(LONG)CreateSolidBrush(RGB(color[0],color[1],color[2]))));InvalidateRect(hwnd,&rcColor,TRUE);return0;caseWM_CTLCOLORSCROLLBAR:i=GetWindowLong((HWND)lParam,GWL_ID);return(LRESULT)hBrush[i];caseWM_CTLCOLORSTATIC:i=GetWindowLong((HWND)lParam,GWL_ID);if(i>=3&&i<=8)//statictextcontrols{SetTextColor((HDC)wParam,crPrim[i%3]);SetBkColor((HDC)wParai,GetSysColor(COLOR_BTNHIGHLIGHT));return(LRESULT)hBrushStatic;}break;caseWM_SYSCOLORCHANGE:DeleteObject(hBrushStatic);hBrushStatic=CreateSolidBrush(GetSysColor(COLOR_BTNHIGHLIGHT))return0;caseWM_DESTROY:DeleteObject((HBRUSH)SetClassLong(iwnd,GCL_HBRBACKGROUND,(LONG)GetStockObject(WHITE_BRUSH)));for(i=0;i<3;i++)DeleteObject(hBrush[i]);DeleteObject(hBrushStatic);PostQuitMessage(0);return0;returnDefWindowProc(hwnd,message,wParam,IParam);LRESULTCALLBACKScrollProc(HWNDhwnd,UINTmessageWPARAMwParam,LPARAMlParam)intid=GetWindowLong(hwn,GWL_ID);switch(message)caseWM_KEYDOWN:if(Param==VK_TAB)SetFocus(GetDlgItem(GetParent(hwnd),(id+(GetKeyState(VK_SHIFT)<0?2:1))%3));break;caseWM_SETFOCUS:idFocus=id;break;}returnCallWindowProc(OldScroll[id],hwnd,message,wParam,lParam);運(yùn)行結(jié)果截圖:上機(jī)實(shí)驗(yàn)報告V課程名稱:程序設(shè)計(jì)II班級:實(shí)驗(yàn)日期:姓名:學(xué)號:指導(dǎo)教師:實(shí)驗(yàn)序號:05實(shí)驗(yàn)成績:一、實(shí)驗(yàn)名稱:實(shí)現(xiàn)簡單屏幕截取二、實(shí)驗(yàn)?zāi)康募耙笳莆誚S的使用了解程序窗口的設(shè)計(jì)掌握關(guān)于截取的相關(guān)函數(shù)調(diào)用三、實(shí)驗(yàn)環(huán)境:VS2012四、實(shí)驗(yàn)內(nèi)容實(shí)現(xiàn)簡單屏幕截取程序1.能截取桌面背景五、算法描述及實(shí)驗(yàn)步驟創(chuàng)建一個基于對話框的項(xiàng)目用代碼實(shí)現(xiàn)getdc把窗口的dc得到然后畫出來六、調(diào)試過程及實(shí)驗(yàn)結(jié)果在別人的指點(diǎn)下才解決七、總結(jié)對代碼編寫還不夠熟悉,導(dǎo)致程序運(yùn)行經(jīng)常出錯,還需要努力。通過本次實(shí)驗(yàn),我掌握了完成一些特定的功能,為今后的學(xué)習(xí)奠定了基礎(chǔ)。八、附錄intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstancePSTRszCmdLine,intiCmdShow){HWNDhwnd;MSGmsg;WNDCLASSwndclass;HMENUhMenu;hMenu=LoadMenu(lInstanc,MAKEINTRESOURCE(IDR_MENU1));wndclass.style=CS_HREDRAW|CS_VREDRAW;wndclass.lpfnWndProc=WndProc;wndclass.cbClsExtra=0;wndclass.cbWndExtra=0;wndclass.hInstance=hInstance;wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);wndclass.lpszMenuName=szAppName;wndclass.lpszClassName=szAppName;if(!RegisterClass(&wndclass)){MessageBox(NULL,TEXT("ThisprogramrequiresWindowsNT!”),szAppName,MB_ICONERROR);return0;}hwnd=CreateWindow(szAppName,TEXT("Desktop"),WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,hMenu,hInstance,NULL);/*hMenu=CreateMenu();hMenuPopup=CreateMenu();AppendMenu(hMenuPopup,MF_STRING,IDM_SHOW_NORMAL,TEXT("NORMAL"));AppendMenu(hMenuPopup,MF_STRING,IDM_SHOW_REVERSE,TEXT("REVERSE"));AppendMenu(hMenu,MF_POPUP,(UINT_PTR)hMenuPopup,TEXT("SHOW"));*/ShowWindow(hwnd,iCmdShow);UpdateWindow(hwnd);while(GetMessage(&msg,NULL,0,0)){TranslateMessage(&msg);DispatchMessage(&msg);}returnmsg.wParam;}LRESULTCALLBACKWndProc(HWNDhwnd,UINTmessage,WPARAMwParam,LPARAMIParam){staticintcxClient,cyClient,cxSource,cySource;HDChdcClient,hdcWindow;PAINTSTRUCTps;HMENUhMenu;staticBOOLstretched=TRUE,iscxClientlong=TRUE;staticintiSelection=ID_40001,iSelection2=ID_40007;switch(message){caseWM_COMMAND:hMenu=GetMenu(hwnd);switch(LOWORD(wParam)){caseID_40001:CheckMenuItem(hMenu,iSelection,MF_UNCHECKED);iSelection=LOWORD(wParam);CheckMenuItem(hMenu,iSelection,MF_CHECKED);iCurrent=0;InvalidateRect(hwnd,NULL,TRUE);return0;caseID_40002:CheckMenuItem(hMenu,iSelection,MF_UNCHECKED);iSelection=LOWORD(wParam);CheckMenuItem(hMenu,iSelection,MF_CHECKED);iCurrent=1;InvalidateRect(hwnd,NULL,TRUE);return0;caseID_40003:CheckMenuItem(hMenu,iSelection,MF_UNCHECKED);iSelection=LOWORD(wParam);CheckMenuItem(hMenu,iSelection,MF_CHECKED);iCurrent=2;InvalidateRect(hwnd,NULL,TRUE);return0;caseID_40004:CheckMenuItem(hMenu,iSelection,MF_UNCHECKED);iSelection=LOWORD(wParam);CheckMenuItem(hMenu,iSelection,MF_CHECKED);iCurrent=3;InvalidateRect(hwnd,NULL,TRUE);return0;caseID_40007:CheckMenuItem(hMenu,iSelection2,MF_UNCHECKED);iSelection2=LOWORD(wParam);CheckMenuItem(hMenu,iSelection2,MF_CHECKED);stretched=TRUE;InvalidateRect(hwnd,NULL,TRUE);return0;caseID_40008:CheckMenuItem(hMenu,iS
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度食品倉儲保管與食品安全保障合同
- 2025年度美容院顧客權(quán)益及服務(wù)項(xiàng)目轉(zhuǎn)讓協(xié)議
- 二零二五年度研學(xué)旅行目的地資源整合合同
- 2025年度網(wǎng)絡(luò)安全公司股東股份轉(zhuǎn)讓及安全服務(wù)協(xié)議
- 二零二五年度健身教練職業(yè)安全培訓(xùn)及責(zé)任協(xié)議
- 2025年度美甲店轉(zhuǎn)讓合同范本包含品牌授權(quán)及加盟協(xié)議
- 二零二五年度酒店式公寓租賃及租賃期滿續(xù)約協(xié)議書合同
- 二零二五年度餐飲企業(yè)兼職廚師責(zé)任保證書
- 二零二五年度醫(yī)護(hù)就業(yè)合同模板(醫(yī)療安全風(fēng)險管理)
- 第17課 外交事業(yè)的發(fā)展(教學(xué)設(shè)計(jì))2023-2024學(xué)年八年級歷史下冊同步教學(xué)設(shè)計(jì)(統(tǒng)編版)
- 2025年度產(chǎn)業(yè)園區(qū)建設(shè)項(xiàng)目委托代建服務(wù)協(xié)議
- 2025年湖南水利水電職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試近5年??及鎱⒖碱}庫含答案解析
- 鄉(xiāng)鎮(zhèn)機(jī)關(guān)考勤管理制度
- 《裝修流程圖課件》課件
- 絲綢之路上的民族學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 四年級語文下冊第六單元【集體備課】(教材解讀+教學(xué)設(shè)計(jì))
- 人教版八年級語文下冊教材研說
- 《機(jī)械制造裝備設(shè)計(jì)》ppt課件
- 中學(xué)家訪記錄大全100篇 關(guān)于中學(xué)家訪隨筆
- 小學(xué)綜合實(shí)踐活動_植物的繁殖—扦插
- 《Lou's Flu》RAZ分級閱讀繪本pdf資源
評論
0/150
提交評論