掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
WindowハンドルからタイトルバーのRectを知りたい (ID:29782)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ありがとうございます。 次のようにしてできました。 タイトルバー無しのページは、高さを0にしてもいいところですが 今回は、タイトルバー領域とみなして 上部を普通のタイトルバーと同じ分Rectとして取得してみました。 function GetBarRect(WinHandle: HWND): TRect; var Style: Integer; begin //ウインドウサイズ取得 GetWindowRect(WinHandle, Result) ; With Result do begin Style := GetWindowLong(WinHandle, GWL_STYLE); if (Style and WS_THICKFRAME) = 0 then //一重線のウインドウ場合 begin Right := Right - GetSystemMetrics(SM_CXSIZEFRAME)+1 ; Left := Left + GetSystemMetrics(SM_CXSIZEFRAME)-1; Top := Top + GetSystemMetrics(SM_CYSIZEFRAME)-1; end else //二重線のウインドウかタイトル無しウィンドウの場合 begin Right := Right - GetSystemMetrics(SM_CXSIZEFRAME); Left := Left + GetSystemMetrics(SM_CXSIZEFRAME); Top := Top + GetSystemMetrics(SM_CYSIZEFRAME); end; Style := GetWindowLong(WinHandle, GWL_EXSTYLE); if (Style and WS_EX_TOOLWINDOW) > 0 then //ツールウインドウの場合 begin Bottom := Top+GetSystemMetrics(SM_CYSMCAPTION) -1 end else begin //標準のウインドウの場合 Bottom := Top+GetSystemMetrics(SM_CYCAPTION)-1; end; end; end; >>nさん 教えていただいて、組んだのですが これ、上記と同じような値は取得できないですね。 function GetBarRect2(WinHandle: HWND): TRect; var TitleBarInfo :TTitlebarInfo; begin GetTitleBarInfo(WinHandle, TitleBarInfo); Result := TitleBarInfo.rcTitleBar; end; GetTitleBarInfo(Win 98) http://www.geocities.jp/asumaroyuumaro/program/winapi/window.html#25 Win98用なのかな? 動作確認はXPで行いました。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.