為什麼GDI 不支援SetRop2的功能?

2021-09-05 14:12:37 字數 500 閱讀 1000

好像說是因為setrop2只針對光柵,而gdi+不只是用於光柵?有官方文件確認嗎?

一般來說,新的庫應該有方法來取代setropt2原來的功能。

這就使得畫橡皮條非常困難,網上提供了一些方法以及問題:

1/ 使用dllimport,匯入setrop2  : 這違背了gdi+刪去setrop2的本意。

2/ 更新從起始點到結束點的整個塊狀區域 : 我覺得為了一條線而重新整理整個區域是很愚蠢的事情,雖然可以使用雙緩衝等等技術

3/ 使用乙個erasepen和乙個drawpen,erasepen和背景同色 : 這個方法很有問題,當和其他線條相交時會擦去原來的線條

另外,即便是使用雙緩衝,在乙個bitmap中先畫好,然後直接draw到graphrics上面,bitmap也沒有提供這種setrop2的方法,而對於位圖元素來說,提供這樣乙個方法雖然不倫不類,但是確實很easy:直接畫素操作就可以了。

不知道為什麼要把setrop2去掉。

各位看官有什麼好的方法畫橡皮條嗎?

為什麼模板不支援分離編譯?

在c 中,為了乙個專案的規範化我們通常把 歸類為三類 宣告檔案 實現檔案 測試檔案。比如,我們要實現乙個順序表,那麼規範化就是建立3個檔案 seqlist.h 順序表相關宣告 seqlist.cpp 順序表相關實現 test.cpp 順序表測試檔案 那麼普通順序表這樣寫一點問題都沒有,用模板實現成這...

為什麼模板不支援分離編譯

在c 中,為了乙個專案的規範,我們通常把 歸為三類 宣告檔案 實現檔案 測試檔案.比如,我要用c 實現乙個鍊錶,那麼就會建立這3個檔案 linklist.h 鍊錶的相關宣告 linklist.cpp 鍊錶的實現 test.cpp 鍊錶測試 本文忽略 那麼問題來了,普通鍊錶這樣寫起來一點問題都沒有 如...

為什麼模板不支援分離編譯

在c 中,為了乙個專案的規範,我們為您通常把 歸為三類 1 宣告檔案 2 實現檔案 3 測試檔案 比如我們要用c 實現乙個鍊錶,那麼我們就會建立這3個檔案 linklist.h 鍊錶的相關宣告 lisklist.cpp 鍊錶的實現 test.cpp 鍊錶測試 如果一旦,我們要通過類模板來實現鍊錶 仍...