2

MFC アプリに情報を表示するために CListCtrl コントロールを使用しています。現時点では、LVS_EX_CHECKBOXES を SetExtendedStyle に設定しているため、コントロール内のすべての行の横にチェックボックスがあります。しかし、私が望むのは、コントロール内の一部の行だけにチェックボックスがあることです。これは可能ですか?もしそうなら、これはどのように行われますか?

ありがとう

イアン

4

2 に答える 2

7

チェックボックスを持たない各項目について:

LVITEM lvi;
lvi.stateMask = LVIS_STATEIMAGEMASK;
lvi.state = INDEXTOSTATEIMAGEMASK(0);
::SendMessage(m_hWnd, LVM_SETITEMSTATE, nItem, (LPARAM)&lvi);

項目のチェック ボックスを「作成」するには:

SetCheck(Item, true/false);
于 2008-10-10T10:23:04.540 に答える
0

はい、そうです。チェックボックスのビットマップを作成し、それらをコールバックに含める必要があります。ビット マップの 1 つが空白になります。

または、オーナー ドローイングを実行して、DrawFrameControl 関数を呼び出すこともできます。

マウス クリックをテストし、それに応じて応答するコードを追加することもできます。

于 2008-10-10T10:03:05.300 に答える