リストコントロールにLVS_OWNERDATAとLVS_EX_CHECKBOXESスタイルを適用しています。
ですが現在はチェックボックスは表示できていません。
この2つのスタイルを併用する事は可能なのでしょうか?
知っている方が居られましたら情報を教えてください。
以下にソースを載せておきます。
// ダイアログの WM_INITDIALOG 処理時
HWND hList = ::GetDlgItem(...);
// LVS_OWNERDATA はりソースで指定済み
::SendMessage(hList, LVM_SETEXTENDEDLISTVIEWSTYLE, 0L, LVS_EX_CHECKBOXES);
LVCOLUMN obLC;
obLC.mask = LVCF_FMT | LVCF_WIDTH;
obLC.fmt = LVCFMT_LEFT;
obLC.cx = 64;
::SendMessage(hList, LVM_INSERTCOLUMN, 0, reinterpret_cast<LPARAM>(&obLC));
::SendMessage(hList, LVM_INSERTCOLUMN, 1, reinterpret_cast<LPARAM>(&obLC));
::SendMessage(hList, LVM_SETITEMCOUNT, 1, 0L);
// WM_NOTIFY の LVN_GETDISPINFO 処理時
LV_DISPINFO* lpNM = lParam;
if ((lpNM->item.mask & LVIF_IMAGE) != 0) {
// lpNM->item.iSubItem == 0(チェックボックス行)時ここを通りますが、
// ここで設定する事でチェックボックスを表示できるのでしょうか?
/* lpNM->item.iImage = ?
lpNM->item.stateMask = LVIS_STATEIMAGEMASK;
lpNM->item.state = INDEXTOSTATEIMAGEMASK(2));*/
}
if ((lpNM->item.mask & LVIF_TEXT) != 0) {
_tcscpy(lpNM->item.pszText, _T("文字"));
}
環境 WinXP VC6.0+SP6 SDK
ツイート | ![]() |