




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、2-7 編寫一個(gè)繪圖程序,程序運(yùn)行后,當(dāng)用戶在客戶區(qū)窗口按下鼠標(biāo)左鍵并移動(dòng)時(shí),根據(jù)鼠標(biāo)移動(dòng)的軌跡繪制出指定的線段。第一步:在這添加(紅色加粗字體)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編寫一個(gè)多文檔程序,添加菜單項(xiàng)“繪圖”,并為之添加菜單命令“直線”“圓”“矩形”“多邊形”。當(dāng)選中某個(gè)菜單后,在其對(duì)于的菜單命令前劃一個(gè)勾,并把選擇的結(jié)構(gòu)顯示在視圖里。第一步:在這進(jìn)行菜單添加,如圖:(雙擊空白框即可進(jìn)行編輯)第二步:打開類向?qū)?,添?/p>
6、菜單命令處理函數(shù),如圖:第三步:一一添加完八個(gè)函數(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ì)一個(gè)基于文檔視圖的應(yīng)
12、用程序要求如下: 1) 建立單文檔應(yīng)用程序,并添加菜單項(xiàng)“繪圖”,下面有菜單命令“直線”“矩形”“橢圓”。點(diǎn)擊菜單時(shí),彈出消息框提醒“你點(diǎn)擊了XX菜單”。2) 工具條:給上述菜單添加相應(yīng)的工具條按鈕;3) 狀態(tài)欄:在狀態(tài)欄上添加一個(gè)面板,用于顯示當(dāng)前選擇的繪圖菜單操作;第一步:在這建立菜單資源,如圖:第二步:打開類向?qū)?,添加菜單命令處理函?shù),如圖:第三步:添加完四個(gè)函數(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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 發(fā)票月結(jié)合同范本
- 兼職運(yùn)營合同范本
- 品牌出讓經(jīng)營合同范本
- 咨詢居間合同范本
- 品牌戰(zhàn)略合同范本
- 合股經(jīng)營車合同范本
- 合伙合作合同范例
- 2010裝修合同范本
- 內(nèi)衣導(dǎo)購勞務(wù)合同范本
- 廚師職工合同范本
- 中建鋼筋精益管理實(shí)施指南
- 被執(zhí)行人生活費(fèi)申請(qǐng)書范文
- 車間維修現(xiàn)場(chǎng)安全操作規(guī)程范文
- 全面質(zhì)量管理體系條款對(duì)照表
- 高職工商企業(yè)管理專業(yè)人才培養(yǎng)方案
- 2024年中國建筑集團(tuán)招聘筆試參考題庫含答案解析
- 行政法學(xué)基礎(chǔ)講義
- 中建專項(xiàng)施工升降機(jī)安裝專項(xiàng)施工方案
- 錄用通知書offer錄取通知書
- 中建辦公商業(yè)樓有限空間作業(yè)專項(xiàng)施工方案
- Oracle數(shù)據(jù)庫安全配置基線
評(píng)論
0/150
提交評(píng)論