小型繪圖系統(tǒng)課程設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  1設(shè)計(jì)目的</b></p><p>  設(shè)計(jì)一個(gè)單文檔類(lèi)型的MFC AppWizard (exe)工程,工程取名為:Draw。此程序?qū)?shí)現(xiàn)簡(jiǎn)單的繪圖功能,包括點(diǎn)、直線、矩形、橢圓、連續(xù)線的繪制。并且能實(shí)現(xiàn)繪圖的控制,包括線寬、線型和顏色的設(shè)置,圖形的保存和打開(kāi)的使用。</p><p>  2 總體設(shè)計(jì) 設(shè)計(jì)圖如圖6</

2、p><p><b>  3詳細(xì)設(shè)計(jì)</b></p><p>  首先,新建一個(gè)單文檔類(lèi)型的MFC AppWizard (exe)工程,工程取名為:Graphic。為此程序添加一個(gè)子菜單,菜單名稱(chēng)為“繪圖”,并為其添加六個(gè)菜單項(xiàng),分別用來(lái)控制不同圖形的繪制。當(dāng)用戶(hù)選擇其中的一個(gè)菜單項(xiàng)后,程序?qū)凑债?dāng)前的選擇進(jìn)行相應(yīng)圖形的繪制。添加的六個(gè)菜單項(xiàng)的ID及名稱(chēng)如表1所示。然后分別

3、為這六個(gè)菜單項(xiàng)添加命令響應(yīng),本程序讓視類(lèi)(CGraphicView)對(duì)這些菜單命令進(jìn)行響應(yīng),這六個(gè)響應(yīng)函數(shù)的名稱(chēng)分別如表1所示。</p><p><b>  表1添加的菜單項(xiàng)</b></p><p>  在程序運(yùn)行以后,當(dāng)用戶(hù)單擊某個(gè)菜單項(xiàng)時(shí),應(yīng)該把用戶(hù)的選擇保存起來(lái),以便隨后的繪圖操作使用。因此在CDrawView類(lèi)中添加一個(gè)私有變量m_nDrawType;用來(lái)保存

4、用戶(hù)的選擇,該變量的定義如下所述:</p><p>  private: UINT m_nDrawType;</p><p>  接著,在視類(lèi)的構(gòu)造函數(shù)中將此變量初始化為0,程序代碼如下:</p><p>  CDrawView::CDrawView()</p><p><b>  {</b></p>

5、<p>  // TODO: add construction code here</p><p>  m_nDrawType=0;</p><p><b>  }</b></p><p>  利用switch/case語(yǔ)句,來(lái)分別完成相應(yīng)圖形的繪制。當(dāng)用戶(hù)選擇【繪圖】菜單下的不同子菜單項(xiàng)時(shí),將變量m_nDrawType設(shè)置為不同的值

6、。程序代碼如下:</p><p>  void CDrawView::OnDot() </p><p><b>  {</b></p><p>  // TODO: Add your command handler code here</p><p>  m_nDrawType=1;</p><p&g

7、t;<b>  }</b></p><p>  void CDrawView::OnEllipse() </p><p><b>  {</b></p><p>  // TODO: Add your command handler code here</p><p>  m_nDrawType=4

8、;</p><p><b>  }</b></p><p>  void CDrawView::OnLine() </p><p><b>  {</b></p><p>  // TODO: Add your command handler code here</p><p&g

9、t;  m_nDrawType=2;</p><p><b>  }</b></p><p>  void CDrawView::OnRectangle() </p><p><b>  {</b></p><p>  // TODO: Add your command handler code h

10、ere</p><p>  m_nDrawType=3;</p><p><b>  }</b></p><p>  3.1點(diǎn)、直線、矩形、橢圓,畫(huà)筆繪制</p><p>  對(duì)于直線、矩形和橢圓,在繪制時(shí)都可有兩點(diǎn)來(lái)確定其圖形。當(dāng)鼠標(biāo)左擊時(shí)得到一個(gè)點(diǎn),當(dāng)鼠標(biāo)左鍵松開(kāi)時(shí)得到另外一個(gè)點(diǎn)。為視類(lèi)CDrawView分別捕獲鼠標(biāo)

11、左鍵按下和彈起這兩個(gè)消息。另外當(dāng)鼠標(biāo)左鍵按下時(shí),需要將鼠標(biāo)當(dāng)前按下點(diǎn)保存,因此我們?yōu)镃DrawView再增加一個(gè)CPoint類(lèi)型的私有成員變量:m_ptOrigin,在視類(lèi)的構(gòu)造函數(shù)中將此變量初始化為0。在鼠標(biāo)按下消息響應(yīng)函數(shù)中,保存該點(diǎn),代碼如下:</p><p>  void CDrawView::OnLButtonDown(UINT nFlags, CPoint point) </p><

12、;p><b>  {</b></p><p>  // TODO: Add your message handler code here and/or call default</p><p>  m_ptOrigin=point; //保存鼠標(biāo)按下得到點(diǎn),也是繪制一個(gè)點(diǎn)</p><p>  CView::OnLButtonDown(n

13、Flags, point);</p><p><b>  }</b></p><p>  在鼠標(biāo)左鍵彈起消息響應(yīng)函數(shù)中實(shí)現(xiàn)繪圖,代碼如下:</p><p>  void CDrawView::OnLButtonUp(UINT nFlags, CPoint point) </p><p><b>  {</

14、b></p><p>  // TODO: Add your message handler code here and/or call default</p><p>  //創(chuàng)建并獲得設(shè)備描述</p><p>  CClientDC dc(this); </p><p>  CPen pen(m_nLineStyle,m_nLine

15、Width,m_clr);</p><p>  CPen *oldPen=m_dcMetaFile.SelectObject(&pen);</p><p>  dc.SelectObject(&pen);</p><p>  OnPrepareDC(&dc);</p><p>  dc.DPtoLP(&m_pt

16、Origin);</p><p>  dc.DPtoLP(&point);</p><p>  switch(m_nDrawType)</p><p><b>  {</b></p><p><b>  case 1:</b></p><p>  m_dcMetaFi

17、le.SetPixel(point,m_clr);點(diǎn)以及顏色</p><p><b>  break;</b></p><p><b>  case 2:</b></p><p>  m_dcMetaFile.MoveTo(m_ptOrigin);</p><p>  m_dcMetaFile.Li

18、neTo(point);</p><p>  dc.MoveTo(m_ptOrigin);</p><p>  dc.LineTo(point);</p><p><b>  break;</b></p><p><b>  case 3:</b></p><p>  m_d

19、cMetaFile.Rectangle(CRect(m_ptOrigin,point));</p><p>  dc.Rectangle(CRect(m_ptOrigin,point));</p><p><b>  break;</b></p><p><b>  case 4:</b></p><p

20、>  m_dcMetaFile.Ellipse(CRect(m_ptOrigin,point));</p><p>  dc.Ellipse(CRect(m_ptOrigin,point));</p><p><b>  break;</b></p><p><b>  }</b></p><p&

21、gt;  CGraph*pGraph=new CGraph(m_clr,point,m_ptOrigin,m_nDrawType,m_nLineStyle,m_nLineWidth);</p><p>  m_ptrArray.Add(pGraph);</p><p>  CScrollView::OnLButtonUp(nFlags,point);</p><p>

22、;<b>  }</b></p><p>  void CDrawView::OnPen() </p><p><b>  {</b></p><p>  // TODO: Add your command handler code here</p><p>  m_nDrawType=5;<

23、/p><p><b>  }</b></p><p>  在上述程序中,設(shè)置一個(gè)點(diǎn),用到的函數(shù)是SetPixel,這也是CDC類(lèi)的一個(gè)成員方法,該函數(shù)的生命形式如下:COLORREF SetPixel (POINT point,COLORREF crColor);該函數(shù)是在指定的點(diǎn)設(shè)置一個(gè)像素。其中第一個(gè)參數(shù)(point)是指定的點(diǎn),第二個(gè)參數(shù)(crColor)是指定的顏

24、色。在程序中設(shè)定的顏色在系統(tǒng)顏色表中可能不存在,但系統(tǒng)會(huì)選擇一種和這個(gè)顏色最接近的顏色。RGB是一個(gè)宏,它有三個(gè)參數(shù),分別代表紅、綠、藍(lán)三種顏色的值。這三個(gè)參數(shù)BYTE類(lèi)型,取值范圍為0~255。RGB(0,0,0)是黑色,RGB(255,255,255)是白色,將這三個(gè)分量設(shè)置成為0~255之間的任意值,從而得到各種不同的顏色。這里的RGB(255,0,0)是紅色。</p><p>  繪制直線時(shí),首先調(diào)用Mo

25、veTo函數(shù)移動(dòng)到原點(diǎn),然后調(diào)用LineTo函數(shù)繪制到終點(diǎn)。</p><p>  繪制矩形時(shí)使用Rectangle函數(shù),該函數(shù)聲明形式為:BOOL Rectangle (LPCRECT lpRect);</p><p>  該函數(shù)有一個(gè)指向Crect對(duì)象的參數(shù),后者可以利用兩個(gè)點(diǎn)來(lái)構(gòu)造。需要注意的是該函數(shù)需要的是指向Crect對(duì)象的指針,而上述代碼中傳遞的卻是Crect對(duì)象,但運(yùn)行編譯時(shí)也

26、能成功通過(guò),運(yùn)行時(shí)也不會(huì)報(bào)錯(cuò),這是為什么呢?我們知道C系列的語(yǔ)言都是強(qiáng)類(lèi)型語(yǔ)言,如果類(lèi)型不匹配的話,需要進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換。但這里為什么沒(méi)有進(jìn)行這樣的強(qiáng)制類(lèi)型轉(zhuǎn)換程序也可以通過(guò)呢?實(shí)際上,Crect類(lèi)提供了這樣一個(gè)成員函數(shù):重載LPCRECT操作符,其作用是將Crect轉(zhuǎn)換為L(zhǎng)PCRECT類(lèi)型。因此,當(dāng)在程序中給Rectangle函數(shù)的參數(shù)賦值時(shí),如果它發(fā)現(xiàn)該參數(shù)是一個(gè)Crect對(duì)象,它就會(huì)隱式地調(diào)用LPCRECT操作符,將Crect類(lèi)型

27、的對(duì)象轉(zhuǎn)換為L(zhǎng)PRECT類(lèi)型。因此,在給函數(shù)傳遞參數(shù)時(shí),如果我們看到的傳遞的數(shù)值類(lèi)型和所需要的類(lèi)型不匹配,但編譯和運(yùn)行都正確的情況時(shí),就要想想這其中的緣由了。當(dāng)然,有的情況下可能是這些類(lèi)型之間本來(lái)就可以互相轉(zhuǎn)換,例如short類(lèi)型和int類(lèi)型。但是參數(shù)是對(duì)象類(lèi)的話,就要考慮了,它選擇的對(duì)象的構(gòu)造方法進(jìn)行的隱式轉(zhuǎn)換,還是有其他重載的操作符。</p><p>  當(dāng)用戶(hù)選擇橢圓菜單項(xiàng)時(shí),調(diào)用Ellipes函數(shù)繪制一個(gè)

28、橢圓。Windows系統(tǒng)為我們提供了一個(gè)畫(huà)圖程序,在該程序中,利用畫(huà)筆可以繪制連續(xù)的線條,下面我們?cè)O(shè)計(jì)繪制連續(xù)線和扇形。</p><p>  為了繪制連續(xù)的線條,首先要得到線條的起點(diǎn),這在前面已經(jīng)實(shí)現(xiàn)。然后需要捕獲鼠標(biāo)移動(dòng)過(guò)程中的每一個(gè)點(diǎn),這可以通過(guò)捕獲鼠標(biāo)移動(dòng)消息(WM_MOUSEMOVE)來(lái)實(shí)現(xiàn)。在此消息響應(yīng)函數(shù)中,在依次捕獲的各個(gè)點(diǎn)之間繪制一條條非常短的線段,從而就可以繪制出一條連續(xù)的線條。</p&g

29、t;<p>  遵照這一思路,我們開(kāi)始增加程序的功能。首先為視類(lèi)增加鼠標(biāo)移動(dòng)消息(WM_MOUSEMOVE)的響應(yīng)函數(shù)(OnMouseMove)。這樣,只要鼠標(biāo)在應(yīng)用程序窗口中移動(dòng)時(shí)都會(huì)進(jìn)入到這個(gè)消息響應(yīng)函數(shù)中。但這并不是我們所期望的,我們希望在鼠標(biāo)左鍵按下后開(kāi)始繪圖。因此,我們需要有一個(gè)變量來(lái)表示鼠標(biāo)左鍵是否按下這一狀態(tài),然后在鼠標(biāo)移動(dòng)消息響應(yīng)函數(shù)中對(duì)這一變量進(jìn)行判斷。當(dāng)此變量為真,即鼠標(biāo)左鍵已經(jīng)按下去,我們開(kāi)始繪圖。于

30、是,為視類(lèi)添加一個(gè)BOOL型的私有變量m_bDraw,當(dāng)鼠標(biāo)左鍵按下去時(shí),此變量為真;當(dāng)鼠標(biāo)左鍵彈起時(shí),此變量為假,這時(shí),我們就不再繪制線條了。該變量在視類(lèi)頭文件中的定義代碼如下:</p><p><b>  Private:</b></p><p>  BOOL m_bDraw;</p><p>  接下來(lái)在視類(lèi)的構(gòu)造函數(shù)中,將此變量初始化為

31、FALSE。</p><p>  m_bDraw=FALSE;</p><p>  當(dāng)鼠標(biāo)左鍵按下去時(shí),在視類(lèi)的OnLButtonDown函數(shù)中將此變量初始化為T(mén)RUE。</p><p>  m_bDraw=TRUE;</p><p>  當(dāng)鼠標(biāo)左鍵彈起時(shí),在視類(lèi)的OnLButton函數(shù)中將此變量初始化為假。</p><p

32、>  m_bDraw=FALSE;</p><p>  然后在OnMouseMove函數(shù)中首先對(duì)m_bdraw變量進(jìn)行判斷,如果其值為真,說(shuō)明鼠標(biāo)左鍵已經(jīng)按下去了,這時(shí)就可開(kāi)始進(jìn)行畫(huà)線操作。還有一點(diǎn)需要注意,因?yàn)槊坷L制一條線段后,下次應(yīng)該從這條線段的終點(diǎn)開(kāi)始繼續(xù)繪制。因此,繪制完當(dāng)前線段后,應(yīng)該修改線段的起點(diǎn),將當(dāng)前線段的終點(diǎn)作為下一條線段的起點(diǎn),程序代碼如下:</p><p>  

33、void CDrawcView::OnMouseMove(UINT nFlags, CPoint point) </p><p><b>  {</b></p><p>  //TODO: Add your message handler code here and/or call default</p><p>  //創(chuàng)建并獲得設(shè)備描述&

34、lt;/p><p>  CClientDC dc(this);</p><p>  //創(chuàng)建寬度為1的實(shí)線紅色畫(huà)筆</p><p>  CPen pen (PS_SOLID, 1, RGB(255,0,0));</p><p>  //把創(chuàng)建的畫(huà)筆選入設(shè)備描述</p><p>  CPen *pOldpen=dc.Sele

35、ctObject(&pen);</p><p>  if(m_bDraw==true)</p><p><b>  {</b></p><p>  dc.MoveTo(m_ptOrigin);</p><p>  dc.LineTo(point);</p><p><b>  /

36、/修改線段的起點(diǎn)</b></p><p>  m_ptOrigin=point;</p><p><b>  }</b></p><p><b>  //恢復(fù)設(shè)備描述</b></p><p>  dc.SelectObject(pOldpen);</p><p>

37、  CView::OnMouseMove(nFlags, point);</p><p><b>  }</b></p><p>  如果在上面繪制連續(xù)線條的程序中,保持每段小直線的起點(diǎn)不變,即以鼠標(biāo)左鍵按下時(shí)的起點(diǎn)為起點(diǎn)不變,分別繪制到鼠標(biāo)移動(dòng)點(diǎn)的直線,這時(shí)就會(huì)出現(xiàn)扇形的效果。也就是去掉上述代碼OnMouseMove函數(shù)中修改線段起點(diǎn)的代碼。程序代碼如下:</

38、p><p>  void CDrawView::OnMouseMove(UINT nFlags, CPoint point) </p><p><b>  {</b></p><p>  //TODO: Add your message handler code here and/or call default</p><p&

39、gt;<b>  {</b></p><p>  //創(chuàng)建并獲得設(shè)備描述</p><p>  CClientDC dc(this);</p><p>  //創(chuàng)建寬度為1的實(shí)線紅色畫(huà)筆</p><p>  CPen pen (PS_SOLID, 1, RGB(255,0,0));</p><p>

40、  //把創(chuàng)建的畫(huà)筆選入設(shè)備描述</p><p>  CPen *pOldpen=dc.SelectObject(&pen);</p><p>  if(m_bDraw==true)</p><p><b>  {</b></p><p>  dc.MoveTo(m_ptOrigin);</p>&

41、lt;p>  dc.LineTo(point);</p><p><b>  }</b></p><p><b>  //恢復(fù)設(shè)備描述</b></p><p>  dc.SelectObject(pOldpen);</p><p>  CView::OnMouseMove(nFlags, po

42、int);</p><p><b>  }</b></p><p><b>  3.2設(shè)置對(duì)話框</b></p><p>  為程序添加一個(gè)設(shè)置對(duì)話框,允許用戶(hù)指定畫(huà)筆的類(lèi)型、線寬,并讓隨后的繪圖操作就使用用戶(hù)指定的新設(shè)置值來(lái)進(jìn)行繪制。</p><p>  為了實(shí)現(xiàn)這一功能,首先需要為程序添加一個(gè)對(duì)

43、話框資源,并按下表修改屬性。</p><p>  設(shè)置線型、線寬對(duì)話框的代碼如下:</p><p>  void CDrawView::OnSetting() </p><p><b>  {</b></p><p>  // TODO: Add your command handler code here</p&

44、gt;<p>  CSettingDlg dlg;</p><p>  dlg.m_nLineWidth=m_nLineWidth;</p><p>  dlg.m_nLineStyle=m_nLineStyle;</p><p>  if(IDOK==dlg.DoModal())</p><p><b>  {<

45、;/b></p><p>  m_nLineWidth=dlg.m_nLineWidth;</p><p>  m_nLineStyle=dlg.m_nLineStyle;</p><p><b>  }</b></p><p><b>  }3.3顏色</b></p><

46、p>  顏色對(duì)話框看起來(lái)比較復(fù)雜。實(shí)際上,MFC為我們提供了一個(gè)類(lèi):CColorDialog,可以很方便的創(chuàng)建這樣的一個(gè)顏色對(duì)話框。</p><p>  void CDrawView::OnColor() </p><p><b>  {</b></p><p>  // TODO: Add your command handler co

47、de here</p><p>  CColorDialog dlg;</p><p>  dlg.m_cc.Flags|=CC_RGBINIT;</p><p>  dlg.m_cc.rgbResult=m_clr;</p><p>  if(IDOK==dlg.DoModal())</p><p><b>

48、;  {</b></p><p>  m_clr=dlg.m_cc.rgbResult;</p><p><b>  }</b></p><p><b>  }</b></p><p>  3.3.6打開(kāi)與保存</p><p>  void CGraphicVie

49、w::OnFileOpen() </p><p><b>  {</b></p><p>  // TODO: Add your command handler code here</p><p>  HMETAFILE hmetaFile;</p><p>  hmetaFile=GetMetaFile("m

50、eta.wmf");</p><p>  m_dcMetaFile.PlayMetaFile(hmetaFile);</p><p>  DeleteMetaFile(hmetaFile);</p><p>  Invalidate();</p><p><b>  }</b></p><p

51、>  void CGraphicView::OnFileSave() </p><p><b>  {</b></p><p>  // TODO: Add your command handler code here</p><p>  HMETAFILE hmetaFile;</p><p>  hmetaFi

52、le=m_dcMetaFile.Close();</p><p>  CopyMetaFile(hmetaFile,"meta.wmf");</p><p>  m_dcMetaFile.Create();</p><p>  DeleteMetaFile(hmetaFile);</p><p><b>  }&

53、lt;/b></p><p><b>  心得:</b></p><p>  其實(shí)學(xué)任何一種語(yǔ)言都是一樣的。需要勤奮+毅力+運(yùn)氣=成功,這是我認(rèn)為的一個(gè)公式。這里毅力和勤奮是個(gè)人因素,而運(yùn)氣這是先天的。如果以前沒(méi)有接觸過(guò)編程語(yǔ)言的話,在接觸VC前我建議你先學(xué)習(xí)一些基礎(chǔ)語(yǔ)言,比如C等都是一些比較好學(xué)的基礎(chǔ)語(yǔ)言,我當(dāng)初就是從C語(yǔ)言過(guò)度學(xué)VC的。學(xué)基礎(chǔ)語(yǔ)言的目的是學(xué)習(xí)

54、語(yǔ)法結(jié)構(gòu)和如何編寫(xiě)概念,只有你理解和掌握了這些編程用的工具才能學(xué)習(xí)高級(jí)語(yǔ)言。這些基礎(chǔ)語(yǔ)言中我建議大家學(xué)C語(yǔ)言,其實(shí)VC就是C++也就是C語(yǔ)言的"兒子","父親"學(xué)習(xí)起來(lái)比較容易上手,但遇到類(lèi)似WINDOWS的程序的時(shí)候比較固執(zhí)不容易溝通,在這種條件下才有了"兒子","兒子"比較開(kāi)朗應(yīng)變能力強(qiáng),但是就因?yàn)樗@些優(yōu)點(diǎn)才使初學(xué)者難以掌握。 VC是C++語(yǔ)言,是一種

55、面向?qū)ο蟮木幊陶Z(yǔ)言。他于基礎(chǔ)語(yǔ)言不同點(diǎn)在于,基礎(chǔ)語(yǔ)言是一條路走到底的(中斷技術(shù)除外),而面向?qū)ο笫堑却愕闹噶畈磐伦?,是被?dòng)的編程語(yǔ)言。這點(diǎn)是學(xué)習(xí)VC前必須扭轉(zhuǎn)的概念。通過(guò)這次學(xué)年設(shè)計(jì),我了解vc++是Windows平臺(tái)上的C++編程環(huán)境等。通過(guò)畫(huà)圖,我學(xué)到了以下知識(shí):</p><p>  1.對(duì)項(xiàng)目和文檔的了解,我們?cè)诰帉?xiě)程序時(shí),要對(duì)不同的文件進(jìn)行編寫(xiě)。其中項(xiàng)目就是文件的集合,包括頭文件、源代碼文件、資源文件

56、。文檔窗口也稱(chēng)編輯窗口,是用戶(hù)進(jìn)行輸入或編輯頭文件、源文件、資源的區(qū)域。在編輯文件時(shí),為了增加程序的可讀性,系統(tǒng)用綠色顯示注釋語(yǔ)句,用藍(lán)色顯示關(guān)鍵字。</p><p>  2.菜單:我們繪制畫(huà)圖板時(shí),就要建立一個(gè)“繪圖”菜單。對(duì)于“繪圖”菜單下還有幾個(gè)子菜單項(xiàng),通過(guò)建立菜單同時(shí)讓它實(shí)現(xiàn)菜單上的命令,這就要我們對(duì)每個(gè)菜單項(xiàng)進(jìn)行設(shè)置,諸如,ID、標(biāo)題、快捷鍵、熱鍵等。還有一些屬性設(shè)置,設(shè)置不好,容易出錯(cuò),所以每次建立

57、菜單,都需謹(jǐn)慎設(shè)置,記住每個(gè)菜單對(duì)應(yīng)的參數(shù)。</p><p>  3.文件打開(kāi)與保存,對(duì)于我們繪制出一幅圖片,那么我們就要把它保存下來(lái)。如果我們無(wú)法保存,我們做了也就沒(méi)沒(méi)什么意義了。對(duì)于圖形的保存于打開(kāi),我們還存在很多問(wèn)題,自定義保存不同文件夾下尚未解決,所以還需要我們進(jìn)一步的學(xué)習(xí)和了解,爭(zhēng)取實(shí)現(xiàn)我們心里多希望的。</p><p>  4.在編程時(shí)遇到了圖像在變換大小時(shí),原來(lái)的圖形會(huì)消失,

58、后來(lái)通過(guò)老師的講解,及查看相關(guān)資料,這里涉及的一個(gè)重繪問(wèn)題。經(jīng)過(guò)多次修改,添加代碼,才得以解決。所以我覺(jué)得學(xué)習(xí)VC++就要拿出那種堅(jiān)持不懈的精神,做什么也是,只有你不放棄對(duì)它了解,才會(huì)實(shí)現(xiàn)我們自己想要的,這就要我們要不斷的學(xué)習(xí)VC++,從中學(xué)習(xí)更多我們沒(méi)了解到的知識(shí)。</p><p>  5.對(duì)于CView視圖,經(jīng)過(guò)查詢(xún)主要是負(fù)責(zé)內(nèi)存數(shù)據(jù)與用戶(hù)的交互。包括數(shù)據(jù)的顯示、用戶(hù)操作的響應(yīng)(如菜單的選取、鼠標(biāo)的響應(yīng))。最

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論