我有一些不錯的分離器代碼爲我的GUI,但我無法得到筆/畫筆/無論是我需要做適當的突出顯示。您知道在Visual Studio 10中,分隔條可以被拖動,並且有一個漂亮的黑色透明條,讓您知道當您擡起鼠標按鈕時將發生拆分的位置。這裏有一張圖片:http://www.freeimgshost.com/fullsize/efmcxyyu1wbyb1r7mz0.png與GDI黑色高亮欄
我該如何實現單獨使用GDI和C++的黑色高亮條?
我有一些不錯的分離器代碼爲我的GUI,但我無法得到筆/畫筆/無論是我需要做適當的突出顯示。您知道在Visual Studio 10中,分隔條可以被拖動,並且有一個漂亮的黑色透明條,讓您知道當您擡起鼠標按鈕時將發生拆分的位置。這裏有一張圖片:http://www.freeimgshost.com/fullsize/efmcxyyu1wbyb1r7mz0.png與GDI黑色高亮欄
我該如何實現單獨使用GDI和C++的黑色高亮條?
Visual Studio用戶界面是在WPF中實現的,所以我猜測分隔欄只是一個半透明的填充矩形。
但是,GDI對透明度的支持相當差。
使用半透明,始終位於頂層的分層窗口可以獲得相同的效果。這是一個簡單的解決方案,因爲您不必擔心重新繪製任何東西。你只是移動窗口。
This answer to another question有一些代碼可以創建這樣一個窗口(用於不同的目的)。
這可能是LockWindowUpdate()
的正確用法之一。
在Mousedown上,鎖定窗口,然後開始直接拖動拖動條。由於鼠標仍然被捕獲,拖動條仍然會收到鼠標通知。在mouseup上,解鎖窗口,調整大小並讓繪圖繼續正常進行。