• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:動的に追加したポップアップメニューのオーナードロー)

動的に追加したポップアップメニューのオーナードローについて

このQ&Aのポイント
  • WindowsXp/BCC5.5の環境でアプリ作りを勉強しています。動的に追加したポップアップメニューのオーナードローに関して、うまくいかない問題が発生しています。
  • 質問者は、「mi.fType = MFT_STRING」としてあらかじめ用意したポップアップメニューに動的にメニューを追加できることを確認しましたが、追加したメニューにビットマップを付加するために「mi.fType = MFT_OWNERDRAW」を使用しようとしています。
  • しかし、メニューIDがWM_MEASUREITEMに届かないため、オーナードローができずに困っています。質問者は「mi.wID = 1200」を取得したいと述べており、ウインドウメッセージWM_MEASUREITEMとWM_DRAWITEMは届くが、オーナードローができないという状況にあります。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

wParamからIDを取得できるのは ComboBoxやListBoxなどのコントロールのようです メニューの場合 lParamを適切な構造体のポインタにキャストして itemIDで判定するようですよ WM_MEASUREITEMならばMEASUREITEMSTRUCT WM_DRAWITEMならば  DRAWITEMSTRUCT といった具合です case WM_MEASUREITEM:   lpMIS = (LPMEASUREITEMSTRUCT)lParam;   if ( lpMIS->itemID == 1200 ) {     // 必要な初期設定   }   break;

toshi_yn
質問者

お礼

出来ました! ありがとうございます。 数日悩んでいたので、大変助かりました。 wParamからIDを取得できるのは ComboBoxやListBoxなんですね。勉強になります。 今後とも宜しくお願いします。

関連するQ&A

専門家に質問してみよう