(vs2008-VC++)为何使用了"SetExtendedStyle()"方法后,列表控件第1列会变成黑色?
先看图:
一个基于对话框应用程序
// CDemoDlg 消息处理程序BOOL CDemoDlg::OnInitDialog(){ CDialog::OnInitDialog(); // 按钮“增加记录”初始化为不可用 GetDlgItem (IDC_ADD)->EnableWindow(FALSE); // 编辑框初始化为不可编辑 CEdit_Noon.EnableWindow(FALSE); CEdit_Night.EnableWindow(FALSE); CEdit_Allf.EnableWindow(FALSE); CEdit_Ally.EnableWindow(FALSE); // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动 // 执行此操作 SetIcon(m_hIcon, TRUE); // 设置大图标 SetIcon(m_hIcon, FALSE); // 设置小图标 // TODO: 在此添加额外的初始化代码 m_CListCtrl.SetBkColor(CLR_NONE); m_CListCtrl.SetTextBkColor(CLR_NONE); // 列表控件风格设置 m_CListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT); // ============ 这个语句 ============ m_CListCtrl.InsertColumn(0, _T("日期"), LVCFMT_CENTER, 100); // 添加第1列,标题名称为:日期 m_CListCtrl.InsertColumn(1, _T("星期"), LVCFMT_CENTER, 60); // 添加第2列 m_CListCtrl.InsertColumn(2, _T("中午(份)"), LVCFMT_CENTER, 90); // 添加第3列 m_CListCtrl.InsertColumn(3, _T("晚上(份)"), LVCFMT_CENTER, 90); // 添加第4列 m_CListCtrl.InsertColumn(4, _T("当日总计(份)"), LVCFMT_CENTER, 90); // 添加第5列 m_CListCtrl.InsertColumn(5, _T("当日薪酬(元)"), LVCFMT_CENTER, 90); // 添加第6列 CRect rect; GetWindowRect(&rect); // 设置图片按钮 -------------- MyBitmapButton.LoadBitmaps(IDB_OPENDB_U, IDB_OPENDB_D, IDB_OPENDB_U, IDB_OPENDB_X); MyBitmapButton.SubclassDlgItem(IDC_READALL, this); MyBitmapButton.SizeToContent(); // SetTimer(1, 100, NULL); return TRUE; // 除非将焦点设置到控件,否则返回 TRUE}
DWORD dwStyle = CListCtrl.GetExtendedStyle() | LVS_EX_FULLROWSELECT;CListCtrl.SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, dwStyle, dwStyle);