【BCB】ウィンドウを非アクティブな状態で表示させる
メールチェッカーなどの補助的なアプリケーションでは、ウィンドウを表示すると同時に、入力フォーカスを他のウィンドウから奪ってしまうと、ユーザーが作業を中断させられて不便な思いをすることがあります。
以下は、C++ Builderで、ユーザーが作業中のウィンドウから入力カーソルを奪わずに、自分のプログラムを起動する方法です。
フォームのOnShowイベントで、Win32 APIのSetWindowPos関数を第7引数にSWP_NOACTIVATEというフラグを指定して呼ぶことで実現できます。
非アクティブな状態で表示させたいウィンドウであるTForm1のFormShow内でSetWindowPosを実行しています。
void __fastcall TForm1::FormShow(TObject *Sender) { ::SetWindowPos(this->Handle, NULL, 0, 0, 0, 0, SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW ); }
TrackBack URL :
Comments (0)