掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
オーナードロウメニューについて (ID:52816)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
たしかに、OnMeausreItem/OnDrawItemメッセージハンドラでうまくいきます。 Win98でもコールスタックは同じような結果になります。 どうやら、CMenuの仮想関数 MeasureItem/DrawItemで処理するよりも メニューのオーナーであるウィンドウでメッセージを捕らえたほうが 確実なようですね。 また、WinodwsXPでメニューの表示がおかしくなる現象ですが、 WinXPでは、初回のWM_DRAWITEMメッセージでは DRAWITEMSTRUCT構造体のデバイスコンテキストでペン・ブラシなどを 選択するSelectObject()でエラーが起きていました。 このSelectObject()の戻り値(NULLになっていました)を、 DrawItemの終わりにデバイスコンテキストに戻していたので ほかのメニューも表示がおかしくなっていたようです。 なぜ、Win98では初回のWM_DRAWITEMメッセージでSelectObject()が成功するのに、 WinXPでは失敗するのでしょう?
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.