64bitアプリだけかと思いましたが32bitでも同様の状況。
検証1
FreeConsoleして残ったコンソールを閉じた場合 →GUIアプリはそのままです。
検証2
AllocConsole → FreeConsole → AllocConsole とすると2つ目のコンソールが開きます。
2つ目のコンソールを閉じるとGUIアプリは道連れに終了してしまいますが
1つめのコンソールを閉じてもGUIアプリはそのままです。
どちらも
CloseWindowsは効く
DestroyWindowでは終わらない。(手動では閉じるのでWM_CLOSEは当然有効)
これはこれで便利かもしれません。GUIアプリでデバッグ中に表示して即座にFreeConsoleしておけば
間違って閉じてしまってもアプリが道連れ終了になりませんし、複数の表示内容を複数の窓で確認できるようになりす。
そうすると、前回、コンソールの閉じるボタンを無効化する処理はそのままだと不便になります。
FreeConsoleする時は、閉じるボタンの無効化を戻しておく方が便利に使えます。
それは閉じるボタンの無効のような 面倒なコードは必要なくて
GetSystemMenu(MyConsoleWhd, True);
とするだけです。
他のコンソール関係のコードを確認したい場合は→
Lazarusでコンソールに出力
タグ: Win11
【このカテゴリーの最新記事】
- no image
- no image
- no image
- no image
- no image