|
分類:[.NET 全般]
開発環境:VS2008
言語:C# (.NET Framework 2.0)
初めて質問させていただきます。まえかわと申します。
現在,タイトルどおり,サイズ変更が不可で,キャプションバーがないウィンドウを作成しようと
コーディングしています。
諸事情により継承したフォームは使えないので,フォームに対してSet/GetWindowLongで
以下のようにウィンドウスタイルを設定し,所望の動作を実現しています。
//FormBorderStyleにFixedDialogを設定
form.FormBorderStyle = FormBorderStyle.FixedDialog;
// 現在のスタイルを取得
UInt32 unSyle = Win32.GetWindowLong(form.Handle, Win32.GWL.STYLE);
// キャプションのスタイルを削除
unSyle = (unSyle & ~Win32.WS_CAPTION);
// スタイルを反映
Win32.SetWindowLong(form.Handle, Win32.GWL.STYLE, unSyle);
XPではこれで問題なく動作するのですが,Vista(Aero有効)にて,問題が発生しました。
確かに,サイズ変更不可,キャプション無しのフォームはできるのですが,
Vista独特の角が丸くて少し太いウィンドウ枠ではなく,クラシックスタイルなウィンドウ枠の
ままになってしまい,他のウィンドウと並べると非常に不自然になってしまいます。
Vista風の外観を保ったまま,所望の動作は実現できるのでしょうか?
ご存知の方,よろしくお願いいたします。
|