双击更改 mfc 中列表控件中的行的颜色
Changing the color of a row in list control in mfc on double click
我有一个名为m_listCtrl
的列表控件CListCtrl
,它在创建对话框时显示ID
、Firstname
和Lastname
。在下面的代码中,我通过单击项目的position
并更改该行第一列的值来处理double click
。
//This is in the message map and IDC_LISTNAMES is the list control
ON_NOTIFY(NM_DBLCLK, IDC_LISTNAMES, OnDoubleClick)
void CSqlMfcTestDlg::OnDoubleClick(NMHDR* pNMHDR, LRESULT* pResult)
{
POSITION pos = m_listCtrl.GetFirstSelectedItemPosition();
if (pos == NULL)
{
TRACE(_T("No items were selected!n"));
}
else
{
while (pos)
{
int nItem = m_listCtrl.GetNextSelectedItem(pos);
itemClicked = nItem;
CString idString = m_listCtrl.GetItemText(nItem, 0);
CString textString = m_listCtrl.GetItemText(nItem, 1);
MessageBox(L"Item Clicked is : " + textString);
m_listCtrl.SetItemText(nItem,0, idString+L"(Clicked)");
}
}
}
而不是m_listCtrl.SetItemText(nItem,0, idString+L"(Clicked)");
我想添加一个语句来更改该行的颜色。
请参阅此片段:
class MyListCtrl: public CListCtrl
{
private:
int m_row;
public:
afx_msg void OnNMDblclk(NMHDR *pNMHDR, LRESULT *pResult); // write your custom code in the definition
afx void OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult);
};
class CSqlMfcTestDlg: public CDialogEx
{
private:
MyListCtrl m_listCtrl;
};
定义(未测试(:
void MyListCtrl::OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult)
{
LPNMLVCUSTOMDRAW lplvcd = (LPNMLVCUSTOMDRAW)pNMHDR;
int iRow = lplvcd->nmcd.dwItemSpec;
switch(lplvcd->nmcd.dwDrawStage)
{
case CDDS_SUBITEM | CDDS_PREPAINT | CDDS_ITEM:
{
if(iRow == m_row)
lplvcd->clrTextBk = RGB(0,0,255);
}
}
}
void MyListCtrl::OnNMDblclk(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
m_row = GetSelectionMark();
RedrawItems(m_row, m_row);
}
相关文章:
- 在createdialog创建的窗口中捕获用于编辑控件的OnMouseMove消息
- WinAPI 在单击第一个对话框上的按钮控件并销毁第一个对话框后创建第二个对话框
- 在编译时,C++项目抛出错误 C2228,这是预期的,因为控件在运行时未达到该点
- 如何更改窗体上所有控件的标题?[C++生成器]
- 双击更改 mfc 中列表控件中的行的颜色
- 派生的 wxPanel 控件如何访问其中包含 wxDialog 中的数据?
- 如何从代码本身向 wxwidgets 中的文本控件插入字符?
- 如何在MFC中的静态文本控件上插入图标?
- 我的主窗口在创建时或单击更新区域时是否会收到编辑控件?
- 如何在Qt C++中向自定义控件添加属性?
- C/C++ 检测双击 TVItem 的常用控件
- 从C++标头中导入常量而不是硬编码它们:扩展 .net 控件?
- 控件不会在选择函数旁边移动
- MFC:我们能否扩展CEditView中存在的CEdit控件类行为
- MFC Rich编辑控件2.0文本颜色
- 如何更改 10 的颜色 通过 c++ 构建器中的单个函数编辑控件
- 在c++, Windows Store Metro应用程序中设置控件的颜色
- 静态控件设置文本颜色
- 如何获取标题栏窗口控件的 RECT(最大化、最小化、关闭按钮)?我尝试制作自定义颜色标题栏
- 在mfcc++中无法设置控件的背景颜色