资源简介

MFC中如何使用子控件向父控件发送自定义消息

资源截图

代码片段和文件信息

// MyListCtrl.cpp : 实现文件
//

#include “stdafx.h“
#include “任务管理器.h“
#include “MyListCtrl.h“


// CMyListCtrl

IMPLEMENT_DYNAMIC(CMyListCtrl CListCtrl)

CMyListCtrl::CMyListCtrl() 
: m_nItem(0)
 m_dwColCount(0)
 m_dwItemCount(0)
{

}

CMyListCtrl::~CMyListCtrl()

}


BEGIN_MESSAGE_MAP(CMyListCtrl CListCtrl)
ON_NOTIFY_REFLECT(NM_CUSTOMDRAW &CMyListCtrl::OnNMCustomdraw)
ON_WM_RBUTTONDOWN()
ON_NOTIFY_REFLECT(NM_RCLICK &CMyListCtrl::OnNMRClick)
ON_COMMAND(ID_32778 &CMyListCtrl::MyProcessFlush)
ON_COMMAND(ID_32779 &CMyListCtrl::MyProcessModule)
ON_COMMAND(ID_32780 &CMyListCtrl::MyProcessThread)
ON_COMMAND(ID_32781 &CMyListCtrl::MyProcessKill)
ON_COMMAND(ID_32782 &CMyListCtrl::MyProcessOutFile)
END_MESSAGE_MAP()



// CMyListCtrl 消息处理程序




void CMyListCtrl::PreSubclassWindow()
{
 
SetExtendedstyle(GetExtendedstyle() |       // 设置列表框属性第一列有Checkbox     
LVS_EX_FULLROWSELECT |    // 设置列样式表框属性可以选中整行
LVS_EX_GRIDLINES);       // 设置列表框有表格样式
CListCtrl::PreSubclassWindow();
}


void CMyListCtrl::OnNMCustomdraw(NMHDR *pNMHDR LRESULT *pResult)
{
//  NMLVCUSTOMDRAW* pNMCD = reinterpret_cast(pNMHDR);
//  if (CDDS_PREPAINT == pNMCD->nmcd.dwDrawStage)
//  {
//  *pResult = CDRF_NOTIFYITEMDRAW; // 通知父窗口需要接收绘制列表框中每条记录前后的通告消息。
//  }
//  else
//  {
//  if (CDDS_ITEMPREPAINT == pNMCD->nmcd.dwDrawStage)
//  {
//  *pResult = CDRF_NOTIFYSUBITEMDRAW; // 通知父窗口需要接收绘制列表框每个子项的通告消息。
//  }
//  else if ((CDDS_ITEMPREPAINT | CDDS_SUBITEM) == pNMCD->nmcd.dwDrawStage)
//  {
//  int nItem = static_cast(pNMCD->nmcd.dwItemSpec); // 更新当前条目
//  // pNMCD->iSubItem 即为当前条目的子项
//  pNMCD->clrText = m_vecItemColor[nItem].clrtextColor;
//  pNMCD->clrTextBk = m_vecItemColor[nItem].clrBkColor;
//  *pResult = CDRF_DODEFAULT; // 通知控件自绘
//  }
//  }
}


void CMyListCtrl::InsertCol(DWORD dwCount ...)
{
va_list argptr;
va_start(argptr dwCount);
for (DWORD i = 0; i < dwCount; i++)
{
TCHAR* pStrTabName = va_arg(argptr TCHAR*);//列名
DWORD  dwWidth = va_arg(argptr UINT);  //列宽
InsertColumn(i pStrTabName 0 dwWidth);
// InsertColumn(i pStrTabName 0 dwWidth);
}
va_end(argptr);
m_dwColCount = dwCount;
}


void CMyListCtrl::InsertOnLineItem(DWORD dwCount ...)
{
va_list argptr;
va_start(argptr dwCount);
TCHAR* pStrItemName = va_arg(argptr TCHAR*);//第一列
InsertItem(m_dwItemCount pStrItemName);
for (DWORD i = 1; i < dwCount; i++)
{
TCHAR* pStrItemName = va_arg(argptr TCHAR*);//第n列
SetItemText(m_dwItemCount i pStrItemName);
}
va_end(argptr);

ITEM_COLOR stcInfo;
m_vecItemColor.push_back(stcInfo);
m_dwItemCount++;
}


void CMyListCtrl::SetItemColor(DWORD dwIndex
COLORREF clrTextColor
COLORREF clrBkColor)
{
m_vecItemColor[dwIndex].clrtextColor = clrTextColor;
m_vecItemColor[dwIndex].clrBkColor = clrBkColor;
}

void CMyListCtrl::OnRButtonDown(UINT nFlags CPoint point)
{
// TODO:  在

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       5713  2015-10-24 20:23  任务管理器 - bak03 可以右键 发送消息但还未处理\MyListCtrl.cpp

     文件       1250  2015-10-24 19:50  任务管理器 - bak03 可以右键 发送消息但还未处理\MyListCtrl.h

     文件        808  2015-10-24 14:48  任务管理器 - bak03 可以右键 发送消息但还未处理\MyStatusBar.cpp

     文件        331  2015-10-24 14:48  任务管理器 - bak03 可以右键 发送消息但还未处理\MyStatusBar.h

     文件       2085  2015-10-24 19:26  任务管理器 - bak03 可以右键 发送消息但还未处理\MyTabCtrl.cpp

     文件        631  2015-10-24 19:16  任务管理器 - bak03 可以右键 发送消息但还未处理\MyTabCtrl.h

     文件       7170  2015-10-24 20:32  任务管理器 - bak03 可以右键 发送消息但还未处理\ProcessDlg.cpp

     文件       1217  2015-10-24 20:00  任务管理器 - bak03 可以右键 发送消息但还未处理\ProcessDlg.h

     文件       9545  2015-10-23 20:17  任务管理器 - bak03 可以右键 发送消息但还未处理\ProcMgr.cpp

     文件       2514  2015-10-24 11:05  任务管理器 - bak03 可以右键 发送消息但还未处理\ProcMgr.h

     文件       1753  2015-10-23 20:44  任务管理器 - bak03 可以右键 发送消息但还未处理\ProgramDlg.cpp

     文件        563  2015-10-23 16:18  任务管理器 - bak03 可以右键 发送消息但还未处理\ProgramDlg.h

     文件       4175  2015-10-23 10:02  任务管理器 - bak03 可以右键 发送消息但还未处理\ReadMe.txt

     文件       4286  2015-10-23 10:58  任务管理器 - bak03 可以右键 发送消息但还未处理\res\favicon.ico

     文件      10134  2013-07-22 01:18  任务管理器 - bak03 可以右键 发送消息但还未处理\res\icon1.ico

     文件        660  2015-10-23 10:02  任务管理器 - bak03 可以右键 发送消息但还未处理\res\My.rc2

     文件        238  2015-10-23 10:23  任务管理器 - bak03 可以右键 发送消息但还未处理\res\toolbar1.bmp

     文件        238  2015-10-23 10:23  任务管理器 - bak03 可以右键 发送消息但还未处理\res\toolbar2.bmp

     文件      67777  2013-07-22 01:18  任务管理器 - bak03 可以右键 发送消息但还未处理\res\任务管理器.ico

     文件       4188  2015-10-24 18:38  任务管理器 - bak03 可以右键 发送消息但还未处理\resource.h

     文件        143  2015-10-23 10:02  任务管理器 - bak03 可以右键 发送消息但还未处理\stdafx.cpp

     文件       2073  2015-10-24 19:57  任务管理器 - bak03 可以右键 发送消息但还未处理\stdafx.h

     文件        234  2015-10-23 10:02  任务管理器 - bak03 可以右键 发送消息但还未处理\targetver.h

     文件     116644  2015-10-24 20:16  任务管理器 - bak03 可以右键 发送消息但还未处理\任务管理器.aps

     文件       2426  2015-10-23 10:02  任务管理器 - bak03 可以右键 发送消息但还未处理\任务管理器.cpp

     文件        467  2015-10-23 10:02  任务管理器 - bak03 可以右键 发送消息但还未处理\任务管理器.h

    ..A..H.        28  2015-10-24 07:52  任务管理器 - bak03 可以右键 发送消息但还未处理\任务管理器.opensdf

     文件      16134  2015-10-24 20:16  任务管理器 - bak03 可以右键 发送消息但还未处理\任务管理器.rc

     文件      11264  2015-10-24 20:23  任务管理器 - bak03 可以右键 发送消息但还未处理\任务管理器.v12.suo

     文件       6872  2015-10-24 14:46  任务管理器 - bak03 可以右键 发送消息但还未处理\任务管理器.vcxproj

............此处省略13个文件信息

评论

共有 条评论