Windows時計ウィジェットやソフトウェアキーボードなどウィンドウをクリックしてもフォーカスを取得しないウィンドウを作りたいことありますよね。フォーカスを取得しないウィンドウを作ったときのメモをまとめました。これでウィンドウがフォーカスを取得するかどうかのヒントを設定することができます。指定するとウィンドウがフォーカスを取得しないようヒントが設定されます。デスクトップ環境によってはこの指定が無視されてしまうこともあるようです。関数ではウィンドウ作成時に初期フォーカスを取得してしまうことを防ぐことはできませんでした。関数を呼び出す必要がありました。サンプルコードサンプルコードは以下のようになります。以下のサンプルコードは不完全です。対策が必要なのか追って説明していきます。フォーカスを取得しないようにします。起動時にフォーカスを取得しないようにします。ビルドして実行してみると以下のようになりました。他のウィンドウがフォーカスを維持していました。ビルドして実行してみます。プログラムを起動した状態ではフォーカスを取得していません。次にメモ帳にフォーカスを当てます。メモ帳のウィンドウボーダーはアクティブウィンドウを表す水色になっています。この状態でウィンドウをクリックしてみると...。ウィンドウはボーダーが水色になっていないのでフォーカスを取得していないように見えます。メモ帳がフォーカスを失ってしまいました。元のウィンドウがフォーカスを失ってしまうのでは意味がありませんよね。