UsefullCode.net


Visual Studio 2005/2008/2010やandroid SDK/NDKでの開発者向けに便利なソースコードを提供
This site provide you with useful source codes under 'USEFULLCODE license'.

WTLでリストビューでアイテムの高さを指定する

2007年01月13日 17:03
0件のコメント

前回作成した「WTLでリストビューをオーナードローする 」を元にリストビューの行サイズを指定できるようにする。

まずMainFrm.hのメッセージマップでWM_MEASUREITEMメッセージをビュー内で処理するように指定する。
			if(uMsg == WM_MEASUREITEM && ((LPMEASUREITEMSTRUCT)lParam)->CtlType == ODT_LISTVIEW)
				return	m_view.ProcessWindowMessage(hWnd, uMsg, wParam, lParam, lResult, dwMsgMapID);

そしてビュークラス内のメッセージマップにメッセージハンドラを追加する。
	BEGIN_MSG_MAP(CTest100View)
(...省略...)
		MESSAGE_HANDLER(WM_MEASUREITEM, OnMeasureItem)
	END_MSG_MAP()

最後にビュークラスにメンバー関数を追加する。
	LRESULT OnMeasureItem(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& bHandled)
	{
		LPMEASUREITEMSTRUCT lpMeasureItemStruct = (LPMEASUREITEMSTRUCT)lParam;

		//行の高さを指定
		lpMeasureItemStruct->itemHeight = 100;
		return	0;
	}

test101.gif
要はWM_MEASUREITEMでitemHeightに新しい行の高さを代入するだけでいい。

プロジェクトファイルをダウンロード


WTLでリストビューをオーナードローする
Windows Vistaのアクティベーションは強制的にオンライ認証
トップページに戻る
issei.