Skip to main content
Known Participant
December 8, 2004
Question

登録したメニューを削除もしくは非表示にしたい。

  • December 8, 2004
  • 4 replies
  • 732 views
FDKに関する質問なのですが、
以下のように追加したメニューをメニューから削除もしくは
表示されないようにしたいのですがどうしたらいいのでしょうか?

F_ObjHandleT mainMenuId = F_ApiGetNamedObject( FV_SessionId, FO_Menu, (StringT)"!MakerMainMenu" );

// メニューを定義し、 Main Menu に それを挿入
F_ObjHandleT menuId;
menuId = F_ApiDefineAndAddMenu( mainMenuId, (StringT)"ExtraMneu", (StringT)"Extra" );
F_ApiDefineAndAddCommand(CMD_EXTRA_PROTECTON, menuId, (StringT)"PROTECTON", (StringT)"Protect On", NULL );
F_ApiDefineAndAddCommand(CMD_EXTRA_PROTECTOFF, menuId, (StringT)"PROTECTOFF", (StringT)"Protect Off", NULL );

 
    This topic has been closed for replies.

    4 replies

    _koma_Author
    Known Participant
    December 9, 2004
    ymgc様情報ありがとうございます。
    FO_Command に対する enable の設定が、
    FO_Menu にも影響するという情報は助かりました。

    この件について調べていて疑問に思った点を別スレッドで質問しますので
    よろしくお願い致します。
    Participating Frequently
    December 9, 2004
    k-maru様。

    F_ApiDeleteでいけるかな?とちょっと思いましたが…無理そうです。
    (ちゃんと試していませんが)

    FO_Commandに対しては、enable/disableの制御が出来ます。
    かかえている全FO_Commandがdisableだと、FO_Menuもdisableになります。
    (FrameMaker起動時に「表」というメニューがdisableになってますよね?あの感じです。)

    そうですね…。
    文書に指定されているアプリケーション定義を判定して、
    メニュー項目のenable/disableを切り替えでそんな感じになるかなぁ、と思います。
    後は…邪道ではありますが、コマンドはそのままで表示ラベルを変えたり、とか?

    デバックモード/通常モードっていう切り分けはDLLの事ですか?
    コンパイラの設定等で切り替えられると思いますが。
    (↑これは、FDKに限らず…っていう話です)
    _koma_Author
    Known Participant
    December 9, 2004
    ymgc さんいつもありがとうございます。

    Windowsのコンポーネントだと enable とか visble というプロパティがあるものなのですが、
    FDKの FO_Menu は違うようで、まだどうもなれてません。

    構造化アプリケーション毎に使えるメニューを変えたい場合に、
    個々のMenuItem を変更したいのです。
    もしくは
    デバックモード/通常モードで、表示されるメニューを変えたい。
    といったことを実現したいのです。
    Participating Frequently
    December 8, 2004
    k-maru様。

    追加されたメニュー自体を削除したいのであれば、
    DLLを削除するか、AddCommandをしなければ良いですよね。
    ん〜、何をしようとしているのか、ちょっと理解できないんですが…?

    【補足】
    Addcommnadしたメニュー項目は、
    条件(例えば、表が選択されている時とか)をつけて、グレー表示にする制御はできます。
    全く表示しないようにっていう方法は、知りません…。