技法 但請少用 為非活動視窗繪製活動的標題欄

2021-10-07 13:22:21 字數 727 閱讀 3070

你可能會問:「為什麼會有人想這樣做呢?」這個繪製需求通常用於浮動式工具欄。(除此之外,我想不到還有任何其他理由會將乙個非活動視窗的標題欄繪製成活動式的)

幸運的是,這個功能很容易實現。只需要在我們的wndproc視窗過程中新增如下的一行**即可:

case wm_ncactivate: if (wparam == false) wparam = true; break;

這就像是在說:」如果windows希望我繪製乙個非活動狀態的標題欄,則我會反過來將標題欄繪製為活動式的。

當視窗的非客戶區需要標明視窗的活動狀態時,windows將向視窗傳送這個訊息。

標明視窗的標題欄或者圖示需要變更到的狀態。如果它為true,則視窗的標題欄需要被繪製為活動式的。如果它為false,則視窗的標題欄需要被繪製為非活動式的。

當乙個視覺化的風格(visual style)應用在這個視窗上時,這個引數不會被用到。當沒有任何視覺化風格被應用到視窗時,這個引數是乙個可選的非客戶區更新區域的控制代碼。如果這個引數被設定為-1,則預設的訊息處理函式defwindowproc將不會繪製非客戶區來標明視窗的活動狀態。

當wparam為false的時候,應用程式應該返回true表明這個訊息由系統預設的訊息處理函式進行處理,或者如果不希望系統做出修改的話,可以返回false。當wparam為true時,訊息的返回值將被忽略。

一般來說,不推薦對視窗的非客戶區訊息進行自定義處理,因為如果真的打算這樣做的話,應用程式必

FULL JOIN還是少用為妙

今天早上到公司,發現乙個job跑了幾個小時還沒停下來,測試的時候這個任務執行兩分鐘就結束了。於是找dba幫我查原因,原 大致如此 select g2.col1,g1.col2 from select nvl tt.col1,pp.col1 col1,nvl tt.col2,0 nvl pp.col2...

一些比較少用但比較有用的linux命令備忘

ssh fcnr 10000 localhost 22 userb b.b.b.b b.b.b.b是乙個外網機器b的ip ssh p 10000 usera localhost 在機器b,ssh到機器a 取消 設定git 注意設定的前提是以及在系統中設定好了 i2cdetect l 列出系統中有的i...

恢復視力的方法 飛行員都用) 為了你的眼睛請收藏吧

size medium 近視到底能不能 呢?不做雷射手術的話,我們能做些什麼嗎?1 遠方凝視 找一處10公尺以外的草地或綠樹 綠色由於波長較短,成像在視網膜之前,促使眼部調節放鬆 眼睫狀肌鬆弛,減輕眼疲勞。不要眯眼,也不要總眨眼,排除雜念 集中精力 全神貫注的凝視25秒,辨認草葉或樹葉的輪廓。接著把...