以前、クリックスルー フォームを作成したいときに、プラットフォーム呼び出しを使用して拡張ウィンドウ スタイル( GetWindowLong
/ SetWindowLong
in user32.dll
) を設定したくなりました。
ちょうど今、Alt+Tab ウィンドウ リストから見えないようにしたかったのですが、 /を使用する代わりに拡張ウィンドウ スタイルを設定するようにオーバーライドする例を見つけました。CreateParams
GetWindowLong
SetWindowong
今私はこれを持っています:
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x80000 /* WS_EX_LAYERED */ | 0x20 /* WS_EX_TRANSPARENT */ | 0x80/* WS_EX_TOOLWINDOW */;
return cp;
}
}
現在、明らかな変更により、プラットフォームの呼び出しは必要ありません。
だから私のいくつかの質問:
- Windows での機能上の違いはありますか? (私は今試す XP マシンさえ持っていません。)
- 現在、プラットフォームの呼び出しがありません。プログラムは Linux/Mac の Mono で実行されますか? (今試すことができれば、ここで質問することはありません。)
Control.CreateParams
msdnに表示され、ウィンドウ スタイルを操作する例があります。では、なぜオンラインの「例」と StackOverflow の回答でGetWindowLong
/を使用するように指示されているのSetWindowLong
でしょうか。