我有以下对话框:
IDD_REMINDERS DIALOGEX 20, 20, 102, 166
STYLE DS_SETFONT | WS_POPUP | WS_SYSMENU | WS_THICKFRAME
FONT 7, "Small Fonts", 0, 0, 0x0
BEGIN
LISTBOX IDC_REMINDERS_LIST, 1,12,100,152, LBS_OWNERDRAWVARIABLE | LBS_HASSTRINGS | LBS_USETABSTOPS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "×",IDC_CLOSE,90,-1,12,11,WS_GROUP | NOT WS_TABSTOP
LTEXT "...", IDC_REMINDERS_CAP, 1,1,75,8
PUSHBUTTON "+", IDC_REMINDERS_NEW, 78,-1,12,11, WS_GROUP | NOT WS_TABSTOP
END
在此对话框中,我想在右侧显示复选框。
我的印象是调用以下代码应该在列表框中添加复选框:
ListView_SetExtendedListViewStyleEx(hWndListView, LVS_EX_CHECKBOXES, LVS_EX_CHECKBOXES);
尽管如此,我现在怀疑我可能会混淆列表框和列表视图。无论哪种方式,我在listview上尝试使用RC中的以下代码进行相同的ListView_SetExtended调用:
CONTROL "",IDC_KEYS,"SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_OWNERDRAWFIXED | LVS_OWNERDATA | LVS_NOCOLUMNHEADER | WS_TABSTOP,4,64,250,136
可悲的是,此列表视图也拒绝显示复选框。
列表框中是否可以有复选框? (没有继续进行并自己绘制。短期内可以正常工作,但就长期操作系统兼容性而言似乎更麻烦。)
如果列表框设置为“所有者绘制”,这可以工作吗? (由于自定义文字着色,我正在使用它。)