- 綠色版查看
- 綠色版查看
- 綠色版查看
- 綠色版查看
- 綠色版查看
對于沒做過這方面程序的人,最好奇的可能就是,你用Graphics類畫出一個東西后,怎么樣才能重新選中、移動、編輯它?
以畫一個矩形為例來說明,你如果用Graphics類在一個控件(Control)上畫了個矩形,并且把矩形的起點坐標、大小等數據記住,那么用戶在控件上單擊的時候,你就能判斷出用戶是否在矩形上單擊了,如果是,就表示矩形被選中了,如果用戶同時還移動了鼠標,那么就可以根據移動的距離重新計算矩形的起點坐標,然后重新畫這個矩形。
這就是愛搜呀畫圖板用的基本方法。在內部記住各種形狀(線段、矩形、橢圓等)的起點坐標、大小、顏色等等信息,在用戶移動、旋轉形狀后,要隨即更新這些信息,并重新繪制形狀。
其它的難點還有不少,比如用戶將圖像放大,并在放大的視圖上繪制新的形狀,這時候的處理跟未放大時有什么不同?再如撤銷(后退一步)功能,怎么樣放棄最后一次操作,返回之前的狀態?放大和撤銷這兩個功能現在還為實現,但是大致思路已經有了。
做這個程序有兩個目的,一是把功能寫全后,用我之前寫的一個控件庫來做其UI,然后這個畫圖程序作為控件庫的應用例子。二是做一個實用的截圖、畫圖程序,盡量仿mspaint來做,但要在個方面有所增強。當然了目前愛搜呀畫圖板還很簡單,沒有截圖功能、不能粘貼位圖、不能編輯文字等等,后面會繼續完善。
您的評論需要經過審核才能顯示
有用
有用
有用