質問

ようにしていくオーナーが描くlistboxとWTL.私のようなコードになります

template<class T, class TBase = CListBox, class TWinTraits = CControlWinTraits>
class ATL_NO_VTABLE CMyListBoxImpl : 
   public CWindowImpl< T, TBase, TWinTraits >,
   public COwnerDraw< T >
{
...
BEGIN_MSG_MAP(CMyListBoxImpl)
    MESSAGE_HANDLER(WM_CREATE, OnCreate)
    MESSAGE_HANDLER(WM_DESTROY, OnDestroy)
    MESSAGE_HANDLER(WM_ERASEBKGND, OnEraseBackground)
    MESSAGE_HANDLER(WM_SIZE, OnSize) 
    MESSAGE_HANDLER(WM_DRAWITEM, OnDrawItem)
    CHAIN_MSG_MAP(COwnerDraw< T >)
    DEFAULT_REFLECTION_HANDLER()
END_MSG_MAP()

...

void Init()
{
    ...
    ModifyStyle(0, BS_OWNERDRAW | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS);
    ...
}
void DrawItem(LPDRAWITEMSTRUCT lpdis)
{
  ...

いも REFLECT_NOTIFICATIONS 親のメッセージループ設定オーナーを固定性シートです。それでもまだ届きませんのメッセージ。を使用したスパイ++を調べられる"というメッセージのlistbox受けたメッセージはとても不思議(WM_USER+7211).
私のos WinXp用VS2008.

役に立ちましたか?

解決

  • BS_OWNERDRAW?このボタンです。
  • でもLBS_OWNERDRAWFIXEDだを取り扱う必要がありWM_MEASUREITEM.
  • 一部の制御スタイルなど)LBS_OWNERDRAWFIXEDで のみ 時に設定される制御が作成されます(あるいはどういう意味の"オーナー]を設定します抽定性シート"?, その場合、なぜ変更にスタイルコードについて教えてください。)

このフォーラムのスレッド することもできるのを手伝---

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top