程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> paint事件-關於C#的Graphics的Paint事件

paint事件-關於C#的Graphics的Paint事件

編輯:編程解疑
關於C#的Graphics的Paint事件

作為一名小白,最近在做一個類似畫板的Winform。
通過button選擇一種工具(矩形,圓,線)
然後在picturebox上通過click事件點擊,直接在點擊位置draw一個相應的圖形。
在制作過程中,有這麼幾個問題:
1.這樣直接draw的圖形,和用paint事件的圖形有什麼區別,一直沒怎麼懂paint的用法
2.後期我想保存文件,使用DrawtoBitmap時,生成的是一張白紙(是不是和沒有用paint有關)
3.能對我畫的圓進行鼠標拖拽麼(基於updown),如何刪掉原來的圖形

最佳回答:


  1. 這和windows的機理有關。在windows系統中所有的窗口,子窗口,控件等都是屬於一種叫做"窗口"的對象。這個對象會接收很多消息,比如鼠標消息,繪畫消息,定時消息等,對不同的消息的不同處理就形成了你所用的按鈕,文本框等等各種控件。 但是"窗口"有個最基本的消息就是Paint消息,當有其他窗口層疊在它之上然後移開,或者它的大小改變,或它的顯示模式改變都會自動觸發這個消息,調用內部函數重新繪制"窗口"。 如果你沒在paint消息裡繪制,只是直接用draw繪制的東西,在用另一個窗口遮擋然後移開後,會變回原來的圖案(一般就是空白)。
  2. DrawtoBitmap應該是調用Paint類消息繪制的。
  3. 拖拽的如果只是線條的話,一般可以采用XOR方式繪制兩次就可消除。如果是圖形的話,一般是調用窗口的Invalidate函數強制觸發Paint消息,在重繪的時候把拖動的圖用新的坐標繪制一下。其他圖保留原始位置
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved