お聞きしたいのですが、実行中にタスクバーとかタイトルバーを右クリック
すると、最大化とか閉じるとか出てくるじゃないですか?その閉じるを押しても
意味がないみたいにできないかなぁと思いました。何かいい方法はないですか?
以前MLで投稿されていました。
http://www2.big.or.jp/~osamu/Delphi/delphi-browse.cgi?index=042000
タスクバーでの閉じるを制限したい場合はどうすればよいのでしょうか?
ちわっすさんの紹介した方法は試されましたか?
はい!試しましたよ!!タイトルバーには閉じるは表示されなかったの
ですが、実行ファイルのタスクバー(画面の一番下にあるやつ)には閉じる
がそのまま有効なんですよ...
失礼しました。
Delphiの基本動作を忘れていました。
FormのシステムメニューをDisableにしても、タスクバーに出ているシステムメニューとは別なので、同じ手順をこちらのメニューに対しても行う必要があります。
タスクバーに出ているシステムメニューの持ち主は、Applicationオブジェクトです。
GetSystemMenu(Handle, FALSE);
で、Formのハンドルを渡しているので、Formのシステムメニューのハンドルが返ってきます。
ここを、
GetSystemMenu(Application.Handle, FALSE);
とすると、アプリケーションのシステムメニューのハンドルが返ってきます。
ちわっすさんの例では、閉じるメニューを削除でしたが、無効化するということでしたら、
procedure TForm1.FormCreate(Sender: TObject);
var
hMenu: THandle;
begin
hMenu := GetSystemMenu(Handle, False);
EnableMenuItem(hMenu, SC_CLOSE, MF_BYCOMMAND or MF_GRAYED);
hMenu := GetSystemMenu(Application.Handle, False);
EnableMenuItem(hMenu, SC_CLOSE, MF_BYCOMMAND or MF_GRAYED);
end;
というようにしたほうがよいかもしれません。
ツイート | ![]() |