MFC (Microsoft Foundation Class) でツール作ってたらカスタマイズ機能が上手くいかない問題を見つけたのでメモ。
症状
- ツールバーのカスタマイズ画面で、コマンドの D&D による出し入れが出来ない。
- ドラッグ開始した一瞬だけドラッグ中を示すカーソルアイコンに変わる。
- Alt を押しながらドラッグでツールボタンの入れ替えが出来ない。(Quick Customization 有効時)
対処
CWinApp
または CWinAppEx
の InitInstance()
を継承したメンバ関数内の頭らへんに
AfxOleInit();
を挿入し、ExitInstance()
を継承したメンバ関数内に
AfxOleTerm();
を挿入する。
対処例
BOOL CMFCApp::InitInstance() {
INITCOMMONCONTROLSEX InitCtrls;
InitCtrls.dwSize = sizeof(InitCtrls);
InitCtrls.dwICC = ICC_WIN95_CLASSES;
InitCommonControlsEx(&InitCtrls);
+ AfxOleInit();
CWinAppEx::InitInstance();
int CMFCApp::ExitInstance() {
+ AfxOleTerm();
return CWinAppEx::ExitInstance();
}
参考
- Feature Pack 2008 - Customise toolbars problem (2021-11-25)