1. 程式人生 > >vc++圖像保存,重繪

vc++圖像保存,重繪

設備描述表 技術 for循環 art 處理 tar .com 內存 函數

新建mfc應用程序,單文檔

增加繪圖

技術分享圖片

分別增加命令響應

添加成員變量UINIT

技術分享圖片

技術分享圖片

圖形可以運行,如何保存呢?(一個集合類,CPtArt)

技術分享圖片

用一個類的對象來保存一個圖形的三個要素

所以插入一個新的類(通常的類)

技術分享圖片

增加三個成員變量,第一個類型,設置為公有的

技術分享圖片

也可以在函數中直接寫,添加起點,終點

技術分享圖片

讓用戶在構造的時候直接傳遞進來給這三個成員變量賦值

技術分享圖片

然後在原文件當中,對成員變量進行賦值

技術分享圖片

(這樣構造一個類的對象來保存一個圖形的三個要素)

要想增加一個指針用add,要想取出原數用GetAt

CObArray

可以利用CPtrArray存儲一個對象的地址

首先構造一個graph對象,在添加一個成員變量

技術分享圖片

用集合類的對象調用add方法保存

技術分享圖片

將集合類元素中的取出來

首先創建一個畫刷(將onbuttonup中的這一句復制到ondraw中)

技術分享圖片

技術分享圖片

將透明的畫刷選到設備描述表中

技術分享圖片

做一個for循環將集合類當中的取出來(做一個switch語句根據所保存的繪畫類型去繪制圖形)

技術分享圖片

雖然說保存了對象的地址,但是對象graph出了大括號就已經析構了

技術分享圖片

首先在view類中,1 構造了一個集合類的對象;

2構造了一個graph對象,是在onlbuttonup函數中構造的,是一個局部對象

在棧中分配空間

3。第三步,當調用集合類中add方法,graph對象他所在內存的地址,當執行之後會析構掉,生命周期結束

技術分享圖片

如何解決這個問題,用一個指針類型的變量,是用堆的保存,當被析構的時候,內容已經被傳遞了

技術分享圖片

定義指針類的對象,調用add方法

技術分享圖片

當窗口位置發生變化的時候,圖像位置不變

技術分享圖片

當窗口重繪的時候,會調用ondraw函數(虛函數)

增加onpaint

技術分享圖片

如何使窗口具有滾動能力

本程序已經有cview

找編輯菜單下的替換

技術分享圖片

技術分享圖片

我們設定的頁面空間或者說邏輯空間的坐標點如何轉換為設備空間的坐標點

四種坐標空間:世界坐標系空間,頁面空間,設備空間,物理設備空間

技術分享圖片

第七章數字信號處理仿真318-7.8/317-7.2

vc++圖像保存,重繪