MFC介面開發筆記

2021-05-11 09:51:08 字數 954 閱讀 9312

汗死,寫了2次怎麼都沒有了。。。。

上次記錄的是mfc如何將乙個矩形影象中的非白色區域影藏,即只顯示非白色區域的影象,而讓中的白色區域顯示為原介面的背景色。

結果不知道怎麼就丟失了。。。。

現在沒太多時間,先寫今天看的內容。

內容為:

如何讓這個不規則的影象的訊息響應區域也是不規則影象的區域。

其實也就是說,當你重繪button時,然後呼叫getdc()這樣得到的dc(device context)就是那個不規則的影象區域,而非矩形。

也可以說button的window視窗的大小就是你看到的不規則影象的大小,而不是矩形。

要解決這個問題,首先先了解一下這些內容:

1:windows中所有的繪製都是矩形繪製的。所以要繪製乙個不規則的影象,就要將它看成乙個由n個小矩形拼成的影象。比如可以看成高的象素為1px的小矩形。

2:如何去切小矩形呢,方法是:掃瞄影象,當第1次碰到白色影象時記錄下縱座標(a),繼續掃瞄,當一行到頭或者再次碰到白色象素的時候記錄下縱座標-1(b)的值,這樣a 到b的就是矩形的長度,寬度自然可以設定為1,這樣才不失真。

然後當你切完所有矩形時,將所有矩形combine一下就得到乙個新的window響應區域了。

這裡要說到幾個函式及結構體:

rgndataheader,

typedefstruct_rgndataheaderrgndataheader;

createrectrgn

combinergn

初始建立個0的rect,然後每次combine上其他rect,這樣就ok了。

因為一開始不知道切成多少個rect,所以這裡需要動態開闢空間,同時通過偏移指標將指標指向rect的陣列開始處。

Qt 的介面開發筆記

現在的工作是介面應用程式開發,以前使用c程式設計,現在需要qt 下用到c 做嵌入式介面開發,邊做專案邊總結。在總結的同時,新增例子程式,可以更好的理解理論知識。一般找到的教程是直接操作,沒有定義自己的類,在專案比較小,功能比較單一的情況下可以使用,但是不如依據個人需求重新定義類更方便快捷,qt 工程...

Android 開發筆記

版本控制的注意事項 以下資料夾不要加入版本控制 bin bin是編譯的二進位制檔案的存放路徑 gen gen是android需要的資源檔案的原始檔存放的目錄 使用svn的時候要注意專案編譯的問題 在編譯的時候程式會把src資料夾裡面的檔案拷貝到bin裡面,但是svn是每個資料夾裡面都包含乙個隱藏的....

ORACLE 開發筆記

oracle 日期 submitdate datetime.parse submitdate tostring d m月 yyyy to date 2002 01 02 yyyy m dd select count 1 from l perm where cancel y and sysdate p...