資源簡介
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? {
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? {
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個文件信息
- 上一篇:CYK算法的C++實現
- 下一篇:mfc 實現圖片的移動 火箭移動效果
評論
共有 條評論