メニューのオーナードロー – プログラミング – Home

メニューのオーナードロー
 
通知
すべてクリア

[解決済] メニューのオーナードロー


リムファクシ
 リムファクシ
(@リムファクシ)
ゲスト
結合: 20年前
投稿: 15
Topic starter  

メニューのオーナードローについて質問させて下さい。
SDI/基本クラスCFormViewでMFCアプリを作成し、
ViewクラスのOnInitialUpdate()にて

CMenu *pMenu = AfxGetMainWnd()->GetMenu();
CMenu *pSubMenu = pMenu->GetSubMenu(0);
pSubMenu->ModifyMenu(ID_FILE_NEW, MF_BYCOMMAND | MF_OWNERDRAW, NULL);

を記述しました。
そしていざ、WM_DRAWITEMを処理しようと思い、CMainFrameクラスのOnDrawItem()内で

switch (lpDrawItemStruct->itemID){
case ID_FILE_NEW: // 今回オーナードローに指定したリソースID
(処理)
}
として処理を行いたいのですが、どうもここにはWM_DRAWITEMが飛んできていない様なの
です・・・

メニューエディタで作成したメニューのオーナードローについて
描画処理はどこで行えば良いのでしょうか・・・?


引用未解決
トピックタグ
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

CMenuをサブクラス化して、CMenuのDrawItemで処理しなければならなそう。
http://www.athomejp.com/goldfish/mfc/window/ownermenu.asp


返信引用
リムファクシ
 リムファクシ
(@リムファクシ)
ゲスト
結合: 20年前
投稿: 15
Topic starter  

うーむ・・・
ポップアップメニューならサブクラス化したメニューで呼び出せるのですが、
CFormViewやCViewでウィザードが生成するメニューのサブクラス化が、どうしても解り
ません・・・
CMenu* pMenu = AfxGetMainWnd()->GetMenu();
でメニューのハンドル取得して、それを基にサブクラス化させるのでしょうか?


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

やりたいことが少し微妙ですが、
http://www.vcppclub.com/samples/ctrl/p_menuex/menuex.html
のサンプルは参考になりますでしょうか?


返信引用
リムファクシ
 リムファクシ
(@リムファクシ)
ゲスト
結合: 20年前
投稿: 15
Topic starter  

Blueさん、ありがとうございます。
まさにやりたい事がこれなので、大変参考になりました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました