2008-10-01 34 views
1

即使BorderStyle設置爲0,也可以強制窗口顯示在任務欄上,方法是打開ShowInTaskbar屬性或直接使用Windows API :SetWindowLong Me.hwnd, GWL_EXSTYLE, GetWindowLong(Me.hwnd, Win.GWL_EXSTYLE) Or Win.WS_EX_APPWINDOW。但是,此類任務欄條目在其任務欄條目中缺少右鍵單擊菜單。右鍵單擊它們不會產生任何內容菜單。有沒有辦法將標準或自定義處理程序附加到它?無邊界任務欄項目:使用右鍵單擊菜單(VB6)

回答

1

沒有黑客,我想你會被卡在這裏,我很抱歉地說。當您設置VB6無邊框屬性時,您固有地禁用了控制菜單。右鍵單擊任務欄中的窗口時,會顯示控件菜單(通常通過右鍵單擊窗口的標題欄或左鍵單擊左上角的圖標激活)。

現在,如果你心情不好,你可能會以這樣一種方式「模擬」行爲,即用戶不知道差異。我從this message thread on usenet得到了這個想法。

基本上,它聽起來像你可能能夠通過使用兩種形式來破解它。一種形式馬上被最小化,併成爲任務欄中的「存根」。另一種形式是你目前正在設計的形式(我們稱之爲「主要」形式)。存根形式是實際加載並顯示主表單的內容。

存根形式不是無邊界的,並且不能禁用控制菜單。它位於屏幕外並且尺寸儘可能最小。您將響應其表單級別的事件,然後使用它們將適當的行爲傳達給無邊界形式。

這就是黑客的一般要旨。如果我現在不在工作,我會打個簡單的VB6項目,看看我能否爲你工作。

+0

這個模擬看起來很醜陋,並且有許多自私的習慣,其中一些可能在沒有更多黑客的情況下無法解決。它看起來很糟糕,我寧願只是沒有右鍵菜單。 – Brian 2008-10-02 19:48:38