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

正文內容

基于vcmfc程序設計——簡易畫圖板-文庫吧資料

2024-08-23 14:52本頁面
  

【正文】 是等待你的指令才往下走,是被動的編程語言。這些基礎語言中我建議大家學C語言,其實VC就是C++也就是C語言的兒子,父親學習起來比較容易上手,但遇到類似WINDOWS的程序的時候比較固執(zhí)不容易溝通,在這種條件下才有了兒子,兒子比較開朗應變能力強,但是就因為他這些優(yōu)點才使初學者難以掌握。如果以前沒有接觸過編程語言的話,在接觸VC前我建議你先學習一些基礎語言,比如C等都是一些比較好學的基礎語言,我當初就是從C語言過度學VC的。需要勤奮+毅力+運氣=成功,這是我認為的一個公式。 DeleteMetaFile(hmetaFile)。 CopyMetaFile(hmetaFile,)。}void CGraphicView::OnFileSave() { // TODO: Add your mand handler code here HMETAFILE hmetaFile。 DeleteMetaFile(hmetaFile)。 hmetaFile=GetMetaFile()。 if(IDOK==()) { m_clr=。 |=CC_RGBINIT | CC_FULLOPEN。實際上,MFC為我們提供了一個類:CColorDialog,可以很方便的創(chuàng)建這樣的一個顏色對話框。 m_nLineStyle=。 =m_nLineStyle。屬性值IDIDD_DLG_SETTINGCaptionSettingFont宋體設置線型、線寬對話框的代碼如下:void CGraphicView::OnSetting() { //TODO: Add your mand handler code here CSettingDlg dlg。該函數(shù)的聲明如下:Static CDC* PASCAL FromHandle(HDC hDC);為程序添加一個設置對話框,允許用戶指定畫筆的類型、線寬,并讓隨后的繪圖操作就使用用戶指定的新設置值來進行繪制。但這時存在一個問題,我們獲取的是句柄,而在進行繪制操作時需要的是一個畫刷對象。這個函數(shù)是否能夠獲得一個透明畫刷句柄呢?從MSND提供的幫助信息中,可以看到該函數(shù)的參數(shù)取值之一可以是NULL_BRUSH,以獲取一個空畫刷??梢岳镁庉嬈饔疫叺恼{色板和繪圖工具來編輯位圖資源,還可以通過拉伸位圖編輯器中網(wǎng)格周圍的藍色方點來調整位圖的大小。首先給程序增加一個位圖資源。CBitmap類提供了多個初始化函數(shù),例如,LoadBitmap、CreateBitmap、BitmapIndirect等。CBrush (CBitmap* pBitmap);該構造函數(shù)要求一個CBitmap類型的指針,CBitmap類是位圖類,于是我們就會這樣想:利用這個構造函數(shù)是否就可以創(chuàng)建一個位圖畫刷呢?事實確實如此。pBrush是指向用于填充矩形的畫刷對象的指針。該函數(shù)將填充全部的矩形,包括上左邊界,但不填充右底邊界。CRect類提供了多個構造函數(shù),這里使用的是下面這種構造函數(shù),即通過指定矩形區(qū)域的左上角和右下角這兩個點來構造一塊矩形區(qū)域。 CView::OnLButtonUp(nFlags, point)。 //恢復先前的畫刷 (pOldBrush)。 //將空畫刷選入設備描述表 CBrush *pOldBrush = (pBrush)。 //創(chuàng)建并獲得設備描述表 CClientDC dc(this)。 //利用紅色畫刷填充鼠標拖曳過程中形成的矩形區(qū)域 (CRect(m_ptOrigin,point),amp。bitmap)。 //加載位圖資源 (IDB_BITMAP1)。brush)。 //創(chuàng)建并獲得設備描述表 CClientDC dc(this)。畫刷通常用來填充一塊區(qū)域。 }再為此程序添加一個子菜單,菜單名稱為“畫刷”,并為其添加三個菜單項,分別用來控制不同的畫刷。 }//恢復設備描述 (pOldpen)。 if(m_bDraw==true) { (m_ptOrigin)。//把創(chuàng)建的畫筆選入設備描述 CPen *pOldpen=(amp。程序代碼如下:void CGraphicView::OnMouseMove(UINT nFlags, CPoint point) {// TODO: Add your message handler code here and/or call default {//創(chuàng)建并獲得設備描述 CClientDC dc(this)。 }如果在上面繪制連續(xù)線條的程序中,保持每段小直線的起點不變,即以鼠標左鍵按下時的起點為起點不變,分別繪制到鼠標移動點的直線,這時就會出現(xiàn)扇形的效果。 }//恢復設備描述 (pOldpen)。 (point)。pen)。//創(chuàng)建寬度為1的實線紅色畫筆 CPen pen (PS_SOLID, 1, RGB(255,0,0))。還有一點需要注意,因為每繪制一條線段后,下次應該從這條線段的終點開始繼續(xù)繪制。m_bdraw=TRUE;當鼠標左鍵彈起時,在視類的OnLButton函數(shù)中將此變量初始化為假。該變量在視類頭文件中的定義代碼如下:Private: BOOL m_bDraw;接下來在視類的構造函數(shù)中,將此變量初始化為FALSE。當此變量為真,即鼠標左鍵已經(jīng)按下去,我們開始繪圖。但這并不是我們所期望的,我們希望在鼠標左鍵按下后開始繪圖。首先為視類增加鼠標移動消息(WM_MOUSEMOVE)的響應函數(shù)(OnMouseMove)。在此消息響應函數(shù)中,在依次捕獲的各個點之間繪制一條條非常短的線段,從而就可以繪制出一條連續(xù)的線條。為了繪制連續(xù)的線條,首先要得到線條的起點,這在前面已經(jīng)實現(xiàn)。當用戶選擇橢圓菜單項時,調用Ellipes函數(shù)繪制一個橢圓。當然,有的情況下可能是這些類型之間本來就可以互相轉換,例如short類型和int類型。因此,當在程序中給Rectangle函數(shù)的參數(shù)賦值時,如果它發(fā)現(xiàn)該參數(shù)是一個Crect對象,它就會隱式地調用LPCRECT操作符,將Crect類型的對象轉換為LPRECT類型。需要注意的是該函數(shù)需要的是指向Crect對象的指針,而上述代碼中傳遞的卻是Crect對象,但運行編譯時也能成功通過,運行時也不會報錯,這是為什么呢?我們知道C系列的語言都是強類型語言,如果類型不匹配的話,需要進行強制類型轉換。繪制直線時,首先調用MoveTo函數(shù)移動到原點,然后調用LineTo函數(shù)繪制到終點。RGB(0,0,0)是黑色,RGB(255,255,255)是白色,將這三個分量設置成為0~255之間的任意值,從而得到各種不同的顏色。RGB是一個宏,它有三個參數(shù),分別代表紅、綠、藍三種顏色的值。其中第一個參數(shù)(point)是指定的點,第二個參數(shù)(crColor)是指定的顏色。 CView::OnLButtonUp(nFlags, point)。 case 4: /*繪制橢圓*/ (CRect(m_ptOrigin,point))。 case 3: /*繪制矩形*/ (CRect(m_ptOrigin,point))。/*調用LineTo函數(shù)繪制到終點。 case 2: /*繪制直線*/ (m_ptOrigin)。 switch (m_nDrawType) { case 1: (point,RGB(255,0,0))。 //保存鼠標按下得到點,也是繪制一個點 CView::OnLButtonDown(nFlags, point)。另外當鼠標左鍵按下時,需要將鼠標當前按下點保存,因此我們?yōu)镃GraphicView再增加一個CPoint類型的私有成員變量:m_ptOrigin,在視類的構造函數(shù)中將此變量初始化為0。當鼠標左擊時得到一個點,當鼠標左鍵松開時得到另外一個點。}void CGraphicView::OnLianxuxian() { // TODO: Add your mand handler code here m_nDrawType=6。}void CGraphicView::OnEllipse() { // TODO: Add your mand handler code here m_nDrawType=4。}void CGraphicView::OnLine() { // TODO: Add your mand handler code here m_nDrawType=2。當用戶選擇【繪圖】菜單下的不同子菜單項時,將變量m_nDrawType設置為不同的值。接著,在視類的構造函數(shù)中將此變量初始化為0,程序代碼如下:CGraphicView::CGraphicView(){ // TODO: add construction code here m_nDrawType=0。因此在CGraphicView類中添加一個私有變量m_nDrawType。然后分別為這六個菜單項添加命令響應,本程序讓視類(CGraphicView)對這些菜單命令進行響應,這六個響應函數(shù)的名稱分別如表1所示。當用戶選擇其中的一個菜單項后,程序將按照當前的選擇進行相應圖形的繪制。 總體設計設計圖如圖6簡易畫圖板文件繪圖筆刷打開保存點直線矩形橢圓扇形連續(xù)線設置顏色簡單筆刷位圖筆刷透明筆刷線寬線型圖6首先,新建一個單文檔類型的MFC AppWizard (exe)工程,工程取名為:Graphic。此程序將實現(xiàn)簡單的繪圖功能,包括點、直線、矩形、橢圓、扇形和連續(xù)線的繪制。在繪圖完成后,使用void ReleaseDC(CDC* pDC ) 函數(shù)釋放設備環(huán)境。 CDC對象被創(chuàng)建后一定要在合適的時候將它刪除掉,如果忘記了刪除設備環(huán)境對象則會造成內存丟失。CWindowDC的(0,0)指整個屏幕的左上角,這意味著我們可以在顯示器的任意地方繪圖,包括窗口邊框、標題欄和菜單欄等等。使用CDC類可以使我們的作圖不用關心設備的問題。每一個C++設備環(huán)境對象都有相對應Windows設備環(huán)境,并通過一個32位類型的HDC句柄來標識。 CDC是設備環(huán)境類的基類直接由CObject派生。 在Class Wizard 中的Object IDs中選中菜單的ID號,Messages中選擇COMMOND,然后點擊Add Function。我們?yōu)樾碌牟藛雾椘鹈绻覀冞x擇了Popup,生成的菜單就還有下級子菜單;如果沒有選擇,菜單就沒
點擊復制文檔內容
高考資料相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1