2010年05月12日

CMFCMenuBar のかなり酷い不具合

MFC アプリケーションのメニューを実装する際に使われる CMFCMenuBar には、かなり酷い不具合があるようです。


Visual Studio デベロッパー センター > Visual Studio フォーラム > Visual C++ > CMFCMenuBarとアクセラレータ

Visual C++ Developer Center > Visual C++ Forums > Visual C++ General > Missing HotKey in using CMFCMenuBar

会社の先輩がハマったという話を聞き、いつか自分も MFC アプリを作る時にハマるかもしれないのでメモしておきます。

上記日本語サイトの、自前で勝手にレジストリに保存されてしまったアクセラレータを消すというハックの他に、そもそも CKeyboardManager を初期化しない(そうすれば当然、勝手に保存もされない)という方法もあるようです。(先輩のケースでは、後者の方法で特に問題が無かったので、そちらを採用したそうです。)

対症療法ではなく、本質的な解決策が欲しいところですが… どうやらこの不具合は Visual Studio 2010 の major work として直す予定らしいので、Visual Studio 2008 SP1 では諦めてください、ということらしいのです。

Missing Hotkey for top level buttons in CMFCMenuBar
This was a major work item in MFC in Visual Studio 2010, addressing a limitation in the library, so there is no simple way to implement this in Visual Studio 2008 SP1. I have no workaround or code suggestions


これはいくらなんでも、ちょっとあんまり過ぎるような気もしますね…

トラックバックURL

コメントする

名前
 
  絵文字
 
 
記事検索
最新コメント
アクセスカウンター
  • 今日:
  • 昨日:
  • 累計:

QRコード
QRコード