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