Windowsタスクバーが内部で使用するアプリケーションデスクトップツールバーを探しています。これには、特定のスタイルのウィンドウを作成し、正しく設定してから、を使用してウィンドウと通信することが含まれSHAppBarMessage
ます。
かなり複雑になる可能性がありますが、ソースで利用できる無料のコンポーネントがいくつかあり(1つはTorryに、もう1つはDelphiPagesにあります)、基本的なシェルを使用して開始できます。
2番目のリンクのユニットの例(リンクのテキストによると、ソース付きのフリーウェアです-アプリケーションアイコンとファイルAppBar.pas
から読み取られた説明が付いたボタンを備えたアプリランチャータスクバーを作成するために使用しました):.lnk
type
TAppBarMessage = (abmNew, abmRemove, abmQueryPos, abmSetPos, abmGetState,
abmGetTaskBarPos, abmActivate, abmGetAutoHideBar,
abmSetAutoHideBar, abmWindowPosChanged);
TAppBarEdge = (abeLeft, abeTop, abeRight, abeBottom, abeUnknown, abeFloat);
...
function TAppBar.AppBarMessage(abMessage: TAppBarMessage;
abEdge: TAppBarEdge; lParam: LPARAM; bRect: Boolean; var rc: TRect): UINT;
var
abd: TAppBarData;
begin
// Initialize an APPBARDATA structure
abd.cbSize := sizeof(abd);
abd.hWnd := Handle;
abd.uCallbackMessage := WM_APPBARNOTIFY;
abd.uEdge := Ord(abEdge);
if bRect then
abd.rc := rc
else
abd.rc := Rect(0, 0, 0, 0);
abd.lParam := lParam;
Result := SHAppBarMessage(Ord(abMessage), abd);
// If the caller passed a rectangle, return the updated rectangle
if bRect then
rc := abd.rc;
end;