none
如何讓表單放在螢幕右邊當作工具欄 RRS feed

  • 問題

  • 我希望開一個視窗,在螢幕最右邊
    此時,其他程式 都部要去站到該視窗
    如果在MDI 視窗內,這是不成問題,但是我希望他是在桌面的右邊。
    變成桌面變小一點。

    不知道有那些API 可以使用

    我試過下面的API, 沒有錯誤發生,但也沒達到我的效果。

     Declare Function GetDC Lib "user32" Alias "GetDC" (ByVal hwnd As Long) As Long
        Declare Function GetDCEx Lib "user32" Alias "GetDCEx" (ByVal hwnd As Long, ByVal hrgnclip As Long, ByVal fdwOptions As Long) As Long

    謝謝

    2012年4月17日 下午 02:04

解答

所有回覆

  • 把mdi form 的 left 設成 Client環境 桌面的寬度 - mdi form 的寬度


    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度

    2012年4月17日 下午 03:26
  • 謝謝,但我不是要用MDI界面,

    是要在WINDOWS的桌面上,例如放在右邊當作一個邊欄

    類似WINDOWS下方那個 BAR的功能

    等於桌面的寬度小一點,其它桌面上的程式會避開他

    我試著將我的表單的hWnd指定給GetDC 這個API, 隨然傳回的值不是0,但是無效

    如下

       Dim hWnd As IntPtr = MyFindWindow(, "Form1")
            MsgBox(GetDCEx(hWnd, 0, 2))

    不知道有哪個API 可以這樣做
    • 已編輯 chih.ching 2012年4月17日 下午 05:47
    2012年4月17日 下午 04:12
  • 您好,

    以下的資訊給您參考,謝謝!

    C# does Shell, Part 3


    以上說明若有錯誤請指教,謝謝。
    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    2012年4月17日 下午 11:07
  • 您可以呼叫SHAppBarMessage函數, 請參考:Create an application desktop toolbar
    2012年4月18日 上午 01:33
  • 謝謝,這個範例我測試的結果可以正常的產生一個桌面工具欄在右邊
    但是 她效果有點像是設定了TtpMost,其他程式 會在它下面而不是避開它

    不知道是否我哪裡弄錯了,細節我再研究該程式碼看看。

    感謝各位

    2012年4月18日 下午 07:47
  • 請問您的Windows版本是Windows 7嗎? 如果是的話, 那沒有錯, 因為在Windows 7只能顯示成這樣, 請參考:SHAppBarMessage function

    2012年4月19日 上午 07:10
  • 測試環境是WINDOWS 7 沒錯!

    那只好用其他方式代替!

    謝謝您嘍!

    2012年4月20日 上午 12:36