C++ 2005を使ってフォームビュー形式のプログラムを作っています。
アクティブタイトルバーのサイズは通常25ですが、ユーザーによっては狭い数値(例えば18)にセットされる方も居られます。
レジストリにウインドウの位置やサイズを記録して、次回開いた時に同じ位置に画面が来るようにしていますが、タイトルバーを変えているユーザーの場合は画面の高さが少しずつ外れてきます。(例の場合は開く度に7ドット上に上がります)
タイトルバーのサイズが得られると25との違いで位置の補正が出来ますのでタイトルバーのサイズを得る方法を、お教え下さい。 宜しくお願いします。
TRACE("%d\n",GetSystemMetrics(SM_CYSIZE));
かな?
#Win2000でしか確認してません。
int i;
i = GetSystemMetrics(SM_CYSIZE);
でバッチリ取得できました。
タイトルバーのサイズを変更して何度かテストをしました。
旨く行きました。
「とおり」さん 有難う御座いました。
>とおり 2008/08/25(月) 16:09:04
あ、大丈夫だとは思いますがWin2000でと書いたのは
XP(Win2000)でもクラシック表示だと通常サイズ18ピクセル
最小が14ピクセルになります。
25を基準にすると正しく動作しない環境もあると思うので
注意してください。
25を基準にしたところ、Win2000でも再度開いた時の画面の高さが同じになって旨く動いていると連絡が有りました。 とおりさん Mny Tks.
ツイート | ![]() |