通過本例項了解如何在窗體上繪製各種圖形,如矩形、橢圓、線條、文字等。執行效果如下:
實現過程:
(1) 新建窗體應用程式
(2) 新增乙個menuscrip控制項;新增乙個toolscrip控制項。
在toolscrip控制項中對每個單元,要將displaystyle屬性改為text
(3)程式**。
1、新建選單事件主要用白色清除窗體的背景,從而實現「檔案新建」功能
[csharp]
private void 新建toolstripmenuitem_click(object sender, eventargs e)
2、開啟事件用於開啟「開啟檔案」對話方塊,並選擇相應的,將繪製到窗體上.
[csharp]
private void 開啟toolstripmenuitem_click(object sender, eventargs e)
} (3) 儲存選單項的click事件用於將窗體背景儲存為bmp格式的
[csharp]
private void 儲存toolstripmenuitem_click(object sender, eventargs e)
} (4) 在paint事件中將image中儲存的影象,繪製出來
[csharp]
private void form1_paint(object sender, painteventargs e)
} (5)新增frm_text.cs文字輸入框。
新增乙個window窗體,取名為frm_text,然後對窗體的屬性修改:
把formborderstyle屬性改為 none;
把modifiers的屬性改為 public
(6) 在窗體的mousedown事件中,如果當前繪製的是字串,在滑鼠的當前位置顯示文字框;如果繪製的是圖開,設定圖形的起始位置。
[cpp]
private void frm_main_mousedown(object sender, mouseeventargs e)
} //如果開始繪製,則開始記錄滑鼠位置
else if ((isdrawing = !isdrawing) == true)
} }
(7) 在窗體的mousemove 事件中,根據滑鼠移動的大小繪製指定的圖形.
[cpp]
private void form1_mousemove(object sender, mouseeventargs e)
} } (8) 在窗體的mouseup事件中,根據使用者選擇的畫筆,繪製直線,橢圓或矩形等指定圖形。
[csharp]
private void form1_mouseup(object sender, mouseeventargs e)
} 這裡解釋為什麼在拉直線時線會跟著滑鼠動,而用選擇畫筆時移動滑鼠就會畫出線。
這裡有兩個graphics:
(1) 真實的場景graphics. 它它上面畫出的畫面就是我個看到的畫面。
eg:private void form1_paint(object sender, painteventargs e)
} 在form1_mousemove裡
如果是畫筆,那麼把影象儲存到了兩個graphic中,這樣我們可以看到移動的畫,最後也將顯示所有畫。
如果直線或矩形,那麼只先畫到第乙個graphics裡,在滑鼠放開時才畫到第二個graphic裡。
摘自 chenyujing1234的專欄
學習C 入門
一 例1 include int main 備註1 c 用cout來輸出內容,c 也能夠用printf scanf 和其它標準c輸入輸出函式,只需要包含常規c語言的stdio.h檔案。備註2 c 和c一樣,用分號 來作為語句的終止符。二 例2 include int main 備註 此時,需要兩個c...
C 學習筆記(c 入門)
經常忙碌的我,今天也有時間學習自己感興趣的c 程式語言了,首先我要記錄這個有意義的時間 2016年6 月6日星期一。那麼學習c 之前,我們先要了解什麼是 c 語言,簡單地說,c 語言是一種在 c語言基礎上被提出來的計算機程式語言,與 c語言一樣,c 語言在計算機的語言中分類屬於 高階語言 也就是一種...
c 入門學習 異常
1.異常 1.1 異常的丟擲 異常丟擲使用throw關鍵字,使用語法為 throw 異常 異常是個物件,如int i 1 throw i等。也可以自定義乙個異常類,在必要的時候丟擲該異常類的例項 class myexception throw myexception 這裡不能使用throw myex...