PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
5499 99/03/17 14:56:11 RE(6):RE:PB6: ウィンドウのクローズ(右上のバツ) By やまちゃん
4889 99/02/01 16:18:29 RE(5):PB6: ウィンドウのクローズ(右上のバツ) By bun
4887 99/02/01 14:37:17 RE(4):PB6: ウィンドウのクローズ(右上のバツ) By にしやん
4830 99/01/28 18:08:57 RE(3):ウィンドウのクローズを抑止する方法 By あすかちゃんの父
4828 99/01/28 17:51:54 RE(2):ウィンドウのクローズを抑止する方法 By M.M
4823 99/01/28 17:04:57 RE(1):PB6: ウィンドウのクローズ(右上のバツ) By まこと
4816 99/01/28 15:52:11 PB6: ウィンドウのクローズ(右上のバツ) By bun

カテゴリ:スクリプトの記述
日付:1999年02月01日 14:37 発信者:にしやん
題名:RE(4):PB6: ウィンドウのクローズ(右上のバツ)

bun さん、こんにちは。

> ウィンドウのコントロールボックスを表示すると無条件で終了のボタンおよびメニューが
>有効になってしまいますが、「最小化は有効だが終了は無効」というコントロールボックス
>にはできないのでしょうか。

コントロールメニューの [閉じる] は、APIを使って使用不可にすることが出来ます。


外部関数
FUNCTION Long GetSystemMenu(Long windowhandle, Boolean bRevert) &
    LIBRARY \"USER32.DLL\"
FUNCTION Long EnableMenuItem(Long hMenu, UnsignedInteger uIDEnableItem, UnsignedInteger uEnable) &
    LIBRARY \"USER32.DLL\"

スクリプト
//定数宣言
//メニューアイテム識別子
CONSTANT UnsignedInteger SC_CLOSE = 61536 //閉じる
//フラグ(アイテムの指定方法)
CONSTANT UnsignedInteger MF_BYCOMMAND = 0 //uIDEnableItem はメニューアイテム識別子
CONSTANT UnsignedInteger MF_BYPOSITION = 1024 //uIDEnableItem は最初のアイテムを 0 とした番号
//フラグ(使用可・不可の設定)
CONSTANT UnsignedInteger MF_ENABLED = 0 //使用可
CONSTANT UnsignedInteger MF_GRAYED = 1 //使用不可(灰色表示)
CONSTANT UnsignedInteger MF_DISABLED = 2 //使用不可(灰色表示にはしない)

//コントロールメニューの[閉じる]を使用不可(灰色表示)にしたい場合
EnableMenuItem(GetSystemMenu(Handle(ウィンドウ),FALSE), SC_CLOSE, MF_BYCOMMAND + MF_GRAYED)
//または、
EnableMenuItem(GetSystemMenu(Handle(ウィンドウ),FALSE), 6, MF_BYPOSITION + MF_GRAYED)


ただし、[閉じる] を使用不可にしても、Alt+F4 でウィンドウを閉じることは抑止できません。

付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows95
DBMS Oracle SQL*Net 8
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS Oracle 8.0
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.