Shell_TrayWnd 的位置? |
尚未結案
|
jck1
一般會員 發表:53 回覆:67 積分:24 註冊:2002-05-23 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
好久以前的問題....
不過還是寫個小範例來解決這個問題. 利用 findwindow 先找出 Shell_TrayWnd 的 handle 後, 再利用 SHAppBarMessage 來取得 AppBar 的資料即可!! 記得要使用 ShellAPI 哦~
參考資料:
http://bdn.borland.com/article/0,1410,26977,00.html
procedure TForm1.Button3Click(Sender: TObject); var sthandle: HWND; abd: TAppBarData; begin sthandle := FindWindow('Shell_TrayWnd', nil); if sthandle <> 0 then begin abd.cbSize := SizeOf(abd); if SHAppBarMessage(ABM_GETTASKBARPOS, abd) = 0 then raise Exception.Create('SHAppBarMessage returned false when trying to find the Task Bar''s position'); // 0 for left, 1 for top, 2 for right, 3 for bottom case abd.uEdge of 0: ShowMessage('AppBar is on left side'); 1: ShowMessage('AppBar is on top side'); 2: ShowMessage('AppBar is on right side'); 3: ShowMessage('AppBar is on bottom side'); else ShowMessage('AppBar is unknown position!'); end; end; end; |
jck1
一般會員 發表:53 回覆:67 積分:24 註冊:2002-05-23 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
請參考這篇: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/messages/abm_setpos.asp 利用 SHAppBarMessage(ABM_SETPOS, pabd);
並將傳入的 TAppBarData 的 uEdge 設定為 3 即可. 弟後來測試的結果是這樣設定是給 appbar 用的. 不能給 taskbar 一樣的操作, 還得試試看其他的方法才行> 發表人 -
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |