通知
すべてクリア
2013年11月18日 4:52 PM
お世話になります。
Windows7, VisualStudio 2010 Pro
OpenThemeData(hWnd, LMenu)を使用して、オーナードロー形式のコンテキストメニューを
作成しているのですが、困っていることがあります。
通常、ポップアップメニューには右側に小さな三角マークが表示されますが、
このマークをシステムが自動的に描画してしまうので、自分で描画すると
2重表示になってしまいます。
三角マークの描画をシステムに任せると、メニュー項目を選択した時に
COLOR_HIGHLIGHTTEXT(白)でマークが描画されるので、Windows 7などの場合、
ほとんど見えなくなってしまいます。選択時の背景は薄い青色で表示されます。
Windows 7の場合、ポップアップメニューを選択状態にしても、三角マークは
黒で表示されます。オーナードローメニューでもこのようにしたいのですが、
なかなかうまくいきません。
ちなみに、WM_DRAWITEMメッセージで何もせずに「return 1;」としても
サブメニューの三角マークだけは自動的に描画されてしまいます。
デバッガでトレースしたところ、どうもWM_DRAWITEMからリターンして、
次のWM_DRAWITEMがコールされるまでの間に三角マークが描画されています。
オーナードロー形式のメニューで、この三角マークを自動的に描画するのを
抑止する方法はあるのでしょうか?