三個c++的MFC編程詳細(xì)步驟_第1頁
三個c++的MFC編程詳細(xì)步驟_第2頁
三個c++的MFC編程詳細(xì)步驟_第3頁
三個c++的MFC編程詳細(xì)步驟_第4頁
三個c++的MFC編程詳細(xì)步驟_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、2-7 編寫一個繪圖程序,程序運(yùn)行后,當(dāng)用戶在客戶區(qū)窗口按下鼠標(biāo)左鍵并移動時,根據(jù)鼠標(biāo)移動的軌跡繪制出指定的線段。第一步:在這添加(紅色加粗字體)class CMFC_52View : public CViewprotected: / create from serialization onlyCPoint m_ptOrigin;bool m_bDragging;HCURSOR m_hCross;第二步:在這添加(紅色加粗字體)CMFC_52View:CMFC_52View()m_bDragging=false;m_hCross=AfxGetApp()->LoadStandardCurs

2、or(IDC_CROSS);/ TODO: add construction code here第三步:擊鼠標(biāo)右鍵打開類向?qū)В砑覹M_LBUTTONDOMN;WM_MOUSEMOVE;WM_LBUTTONUP;如圖:然后在添加(紅色加粗字體):void CMFC_52View:OnLButtonDown(UINT nFlags, CPoint point) SetCapture();:SetCursor(m_hCross);m_ptOrigin=point;m_bDragging=TRUE;/ TODO: Add your message handler code here and/or c

3、all defaultCView:OnLButtonDown(nFlags, point);void CMFC_52View:OnMouseMove(UINT nFlags, CPoint point) / TODO: Add your message handler code here and/or call defaultif(m_bDragging)CClientDC dc(this);dc.MoveTo(m_ptOrigin);dc.LineTo(point);m_ptOrigin=point;CView:OnMouseMove(nFlags, point);void CMFC_52V

4、iew:OnLButtonUp(UINT nFlags, CPoint point) / TODO: Add your message handler code here and/or call defaultif(m_bDragging)m_bDragging=false;ReleaseCapture();CView:OnLButtonUp(nFlags, point);第四步:在這添加(紅色加粗字體):BOOL CMFC_52App:InitInstance()AfxEnableControlContainer();。/ The one and only window has been i

5、nitialized, so show and update it.m_pMainWnd->ShowWindow(SW_SHOW);m_pMainWnd->UpdateWindow();m_pMainWnd->SetWindowText("簡單的繪圖程序");return TRUE;效果圖:THE END2-8編寫一個多文檔程序,添加菜單項(xiàng)“繪圖”,并為之添加菜單命令“直線”“圓”“矩形”“多邊形”。當(dāng)選中某個菜單后,在其對于的菜單命令前劃一個勾,并把選擇的結(jié)構(gòu)顯示在視圖里。第一步:在這進(jìn)行菜單添加,如圖:(雙擊空白框即可進(jìn)行編輯)第二步:打開類向?qū)?,添?/p>

6、菜單命令處理函數(shù),如圖:第三步:一一添加完八個函數(shù)確定后,點(diǎn)Edit Code,添加如下函數(shù):(紅色加粗字體)void CMFC_53View:OnMfc53Line() CClientDC dc(this);dc.TextOut(100,100,"直線");/ TODO: Add your command handler code herem_mode=MODE_LINE;void CMFC_53View:OnMfc53Rectangle() CClientDC dc(this);dc.TextOut(200,200,"矩形");/ TODO: Add

7、 your command handler code herem_mode=MODE_RECTANGLE;void CMFC_53View:OnMfc53Polygon() CClientDC dc(this);dc.TextOut(150,150,"多邊形");/ TODO: Add your command handler code herem_mode=MODE_POLYGON;void CMFC_53View:OnMfc53Circle() CClientDC dc(this);dc.TextOut(180,180,"圓");/ TODO: Ad

8、d your command handler code herem_mode=MODE_CIRCLE;void CMFC_53View:OnUpdateMfc53Circle(CCmdUI* pCmdUI) pCmdUI->SetCheck(m_mode=MODE_CIRCLE);/ TODO: Add your command update UI handler code herevoid CMFC_53View:OnUpdateMfc53Line(CCmdUI* pCmdUI) pCmdUI->SetCheck(m_mode=MODE_LINE);/ TODO: Add you

9、r command update UI handler code herevoid CMFC_53View:OnUpdateMfc53Polygon(CCmdUI* pCmdUI) pCmdUI->SetCheck(m_mode=MODE_POLYGON);/ TODO: Add your command update UI handler code herevoid CMFC_53View:OnUpdateMfc53Rectangle(CCmdUI* pCmdUI) pCmdUI->SetCheck(m_mode=MODE_RECTANGLE);/ TODO: Add your

10、command update UI handler code here第四步:點(diǎn)擊這添加以下代碼(紅色加粗字體):#if _MSC_VER > 1000#pragma once#endif / _MSC_VER > 1000typedef enum eProgModeMODE_LINE,MODE_RECTANGLE,MODE_CIRCLE,MODE_POLYGONPROGMODE;class CMFC_53View : public CView。/ Attributespublic:CMFC_53Doc* GetDocument();PROGMODE m_mode;CPoint m

11、_ptStart, m_ptOldEnd;BOOL m_bDragging;BOOL m_bFirst;HCURSOR m_hCross; / Operations第五步:點(diǎn)擊這添加以下代碼(紅色加粗字體):CMFC_53View:CMFC_53View()m_mode = MODE_LINE;m_bDragging = FALSE;m_bFirst = FALSE;m_hCross=AfxGetApp()->LoadStandardCursor(IDC_CROSS);/ TODO: add construction code here效果圖:THE END2-9設(shè)計(jì)一個基于文檔視圖的應(yīng)

12、用程序要求如下: 1) 建立單文檔應(yīng)用程序,并添加菜單項(xiàng)“繪圖”,下面有菜單命令“直線”“矩形”“橢圓”。點(diǎn)擊菜單時,彈出消息框提醒“你點(diǎn)擊了XX菜單”。2) 工具條:給上述菜單添加相應(yīng)的工具條按鈕;3) 狀態(tài)欄:在狀態(tài)欄上添加一個面板,用于顯示當(dāng)前選擇的繪圖菜單操作;第一步:在這建立菜單資源,如圖:第二步:打開類向?qū)В砑硬藛蚊钐幚砗瘮?shù),如圖:第三步:添加完四個函數(shù)確定后,點(diǎn)Edit Code,添加如下函數(shù):(紅色加粗字體)void CMFC_54View:OnMfc54Ellipse() MessageBox("你點(diǎn)擊了橢圓菜單");CStatusBar*pStatu

13、s=(CStatusBar*)AfxGetApp()->m_pMainWnd->GetDescendantWindow(ID_VIEW_STATUS_BAR);if(pStatus)pStatus->SetPaneText(1,"你點(diǎn)擊了橢圓菜單");/ TODO: Add your command handler code herevoid CMFC_54View:OnMfc54Line() MessageBox("你點(diǎn)擊了直線菜單");CStatusBar*pStatus=(CStatusBar*)AfxGetApp()->m

14、_pMainWnd->GetDescendantWindow(ID_VIEW_STATUS_BAR);if(pStatus)pStatus->SetPaneText(1,"你點(diǎn)擊了直線菜單");/ TODO: Add your command handler code herevoid CMFC_54View:OnMfc54Rectangle() MessageBox("你點(diǎn)擊了矩形菜單");CStatusBar*pStatus=(CStatusBar*)AfxGetApp()->m_pMainWnd->GetDescendantWindow(ID_VIEW_STATUS_BAR);if(pStatus)pStatus->SetPaneText(1,"你點(diǎn)擊了矩形菜單");/ TODO: Add your command handler code here第四步:在這添加工具欄按鈕,操作如圖:自己繪制相應(yīng)的圖形:雙擊新圖標(biāo),設(shè)置工具欄屬性,ID要與菜單上相應(yīng)操作相同:一一完成“直線”,“矩形”,“橢圓”的設(shè)置。第

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論