問題タブ [cmenu]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - メニュー項目を無効化/グレーアウトできないのはなぜですか? (MFC)
メソッドを使用してメニュー項目を無効化/グレーアウトしようとしていますCMenu::EnableMenuItem()
。
ダイアログのトップ メニューを参照するCMenu*
変数があります。を使用しpMenu
てサブメニューを取得し、取得したサブメニュー/メニュー項目の名前を確認できます。方法に困っていますが。メニューがあるとしましょう。その中には、ポップアップ メニューと、、、およびメニュー項目があります。とサブメニュー項目があります。(例) を使用すると、またはを無効にできますが、 、および、および および を含むすべてのメニュー項目に対して機能が失敗します。pMenu->GetSubMenu(int)
submenu->GetMenuStringA()
EnableMenuItem()
File
New
Open
Import
Close
Close All
New
Open
New->Document
submenu->EnableMenuItem([position of submenu/menuitem], MF_BYPOSITION | MF_GRAYED);
New
Open
Import
Close
Close All
New
Open
注:EnableMenuItem()
失敗すると言っても、-1 を返すという意味ではありません。以前の状態に戻りますが、メニューが無効になったりグレー表示になったりすることはありません。
http://msdn.microsoft.com/en-us/library/h62wh3y1.aspxの MSDN ドキュメントでEnableMenuItem()
は、これはポップアップ メニュー項目と標準メニュー項目の両方で機能すると主張しています。ただし、ポップアップのものでのみ機能するようです。
mfc - CMDIFrameWnd Caption と CMenu を視覚的に統合
私のアプリケーションは、基本的に CMenu を持つ CMDIFrameWnd です。
独自のバーとしてキャプションとメニューを表示する視覚効果の作成をどこから開始できますか? デスクトップ上でアプリケーションを移動するためにも使用できるリボン メニューの一部をキャプションにマージする Office 2013 のようなものを入手したいと思います。
c++ - リソース スクリプトまたは CMenu 関数を使用したサブメニューのないメニュー
サブメニューのないメニューを作成したい。
メニューを作成する一般的な方法は次のとおりです。
ここで、サブメニュー「コピー」と「貼り付け」のない「ファイル」が必要です。どうすればこれを達成できますか?
mfc - MFC の CMenu 境界線の色
CMenu Owner draw menuから継承するクラスがあります
このクラスを使用すると、メニューは正しく表示されますが、たとえば、メニュー FILE を開くと、標準のメニュー色の境界線とセパレーターが表示されます
希望の色のこの部分もどのようにペイントできますか?
画像の下に、選択した色 (緑) のファイルのサブメニューと、境界線/スペーサーに灰色の標準 Windows メニューが表示されます。
c++ - ツールチップを CMenu アイテムに追加する
少し前に、テスト目的で CMenu 項目にツールチップを追加しようとしました。今、私はそれが必要であり、同じ問題に再び直面しています。
この質問と回答:
MFC : Cmenu 項目にツールチップを追加する方法は?
この「改行マジック」は単に機能していないため、まったく役に立ちません。
また、問題を抱えているのは私だけではないようです: MFC CMenu tooltip not being displayed
結果は次のとおりです。
ただし、テキストの文字数を増やすと、メニュー ツールチップではなく、ポップアップ メニューが大きくなります。
この回答の他のリンクを見て、それらとプロジェクトを確認しました。しかし、これらは私が望むものではありません。
誰かが私が間違っていたことを知っていますか、または役立つ可能性のある別のソリューション/ソースがありますか?
編集: 以前にコメントで述べたように、問題を再現するための最小要件を備えたサンプル ソリューションを次に示します。(参照CMenuListCtrl.cpp(100)
)
VS2010 & VS2015 でテスト済み (同じ結果)。
c++ - C++ CMenu の描画が正しくない (非カスタム)
私は現在、簡単なことをしようとしています:
右クリックすると、下の画像が表示されます。ただし、メニューは読み込まれます。カーソルをメニューの下に移動すると、サブメニューが正常に表示されることがわかります。このように動的にロードするメニューでこれを行います。ポインター (CMenu*) を作成しようとしましたが、引き続きこの問題が発生します。
ポイントは問いません(任意のポイントを入力します)。
問題の「これ」は派生 CView* クラスです。HWND オブジェクトをクリックしていますが、クリックしているこの特定のオブジェクトの CWnd::FromHandle() も取得しようとしましたが、それでも同じ問題が発生します。
私のトップメニュー構造と他のすべてのメニューは機能します-それはこの特定の場合にのみです。
元のメニューが実際に機能している必要があるときに MeasureItem 関数をオーバーライドするためだけに C++ CMenu クラスを派生させたくはありません。他のバージョンでは正常に機能します。
ヘルプ?