ページ 11

システムメニューの閉じるボタンを消せないか?

Posted: 2009年4月06日(月) 21:25
by toshiyori
AB4.24を使用しています
RADツールを使って フォームを作りました。

その場合 閉じるボタンを消す方法が見つかりません
システムメニューを 消すように 設定はできますが
それでは 最小化ボタンも 消えます

理由は 終了時に 作業をさせたいためです
コマンドボタンをで 閉じれば それが可能ですが
「x」ボタンで 閉じられた時に 対応できないためです。
よろしくお願いします

終了時に処理をするには

Posted: 2009年4月06日(月) 21:44
by 三毛CAT
ボタンを消す方法はわかりませんが、
QueryCloseイベントを捕まえると×ボタンが押された時に作業ができます。
また、その時にcancelをTRUEにするとウィンドウの破棄を防ぐことができます。
これで使えたらどうぞ。

システムメニューの閉じるボタンを消せないか?2

Posted: 2009年4月06日(月) 22:33
by toshiyori
ありがとう ございます
その方法もあるんですネ

試してみると 「x」で 閉じるのは うまく行きましたが
SendMessage(hMainWnd,WM_CLOSE,0,0)を使用して
閉じている コマンドボタンの部分で 2度動作してします
なにか 誤ってるのでしょうか?

Posted: 2009年4月07日(火) 00:05
by konisi
終了時に動作するのなら、PostQuitMessage関数が使えるかもしれません。
あるいはExitProcessとか。

間違ってたらごめんなさい

Posted: 2009年4月07日(火) 07:11
by 三毛CAT
WM_CLOSEは×ボタンを押したことにするため、
処理→SendMessage→QuaryCloseで処理となっていると二度動作すると思います。

システムメニューの閉じるボタンを消せないか?3

Posted: 2009年4月07日(火) 19:17
by toshiyori
> 終了時に動作するのなら、PostQuitMessage関数が使えるかもしれません。
> あるいはExitProcessとか。

ありがとうございます

どちらでも うまくいきました。
SendMessage(hMainWnd,WM_CLOSE,0,0)で 閉じていたので
2度動作していたようです
丁寧な回答で 助かりました

三毛CATさまも ありがとうございます
QuaryCloseは 一度だけ使用していました。