作業三

繳交時間 97/10/29 (三) 24:00

線上繳交作業注意事項

此次作業繼上一次 bouncing ball 的作業, 增加一些繪圖和序列的功能

練習重點

  1. 請練習使用 CPen 類別, CDC::SelectObject() 設定畫筆 , 改變畫出來的球的圓周顏色

  2. 請練習使用 CBrush 類別, CDC::SelectObject() 設定畫刷 , 改變畫出來的球的顏色

  3. 請製作五個選單項目: 紅色, 綠色, 藍色, 加大, 縮小, 請運用 UpdateCommandUI 顯示使用者顏色的選擇 (請注意使用者選擇任一項目後應該要更改 CxxxDoc 物件中球的相關參數, 當然此時在 View 中可以看到正確的顏色和大小的球, 請記得呼叫 CDocument::SetModifiedFlag() 來告訴 framework 你已經修改過文件了)

  4. 請完成 CxxxDoc::Serialize() 函式, 在使用者選擇存檔時可以把 CxxxDoc 中的資料 (球的顏色, 大小, 位置, 速度...) 儲存起來, 程式結束時如果 CxxxDoc 內容有修改過, 也會詢問使用者是否需要存檔
  5. 請測試是否可以使用開啟檔案來讀回一個檔案
  6. 請覆寫 CDocument::OnNewDocument() 這個虛擬函式, 在裡面初始化一個新的球, 請測試開新檔案時是否可以看到預設的結果
  7. 接下來這個功能上課時只講了一部份, 不過還是請你試看看:我們要把 view 視窗的背景改成是 clover 那個圖形, 請在 CxxxView 類別中處理 WM_ERASEBKGND, 也就是運用 Visual studio 界面做一個 CxxxView::OnEraseBkgnd() 的函式,然後把 MFCClover OnPaint() 裡面那一段繪圖程式搬到這裡面來

 

範例執行程式 (我有空一定會趕快寫一個出來)

其他加強功能

  1. 自己發揮一下囉

視窗系統程式設計課程 首頁

製作日期: 10/24/2008 by 丁培毅 (Pei-yih Ting)
E-mail: pyting@cs.ntou.edu.tw TEL: 02 24622192x6615
海洋大學 電機資訊學院 資訊工程系