CCtrlList 双击事件,请高手相助,高分相送

rofole 2006-06-08 09:04:23
为了显示本地文件重载了CCtrlList。现在双击CCtrlList里面的内容,如果双击的是文件那么做一些操作,如果是文件夹,执行父类默认的操作,请问怎么样实现。我的做法是

void CShellListCtrl::OnNMDblclk(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLISTVIEW pNMListView = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
if(pNMListView->iItem==-1)
return;
if(Typpeof(GetItemText(pNMListView->iItem,0)==A..)
{
......
}
else
{
SendMessage(WM_NOTIFY, NM_CLICK, (LPARAM)&nh);
}
*pResult = 0;
}
SendMessage(WM_NOTIFY, NM_CLICK, (LPARAM)&nh);有问题,请指教!!!多谢!!!
...全文
309 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
rofole 2006-06-12
  • 打赏
  • 举报
回复
noneone(noneone):是无限递归
。问题通过别的方法解决了。感谢各位。
noneone 2006-06-09
  • 打赏
  • 举报
回复
建议采用 84830388(豆豆他爸) 的方法
你现在的程序里面的nh我没有找到定义,如果按照你的意图来说,你这个操作在目标是目录时会造成无限递归
rofole 2006-06-08
  • 打赏
  • 举报
回复
是这样的,这个CtrlList显示的是一个目录里的文件。就像windows得浏览器一样,双击CtrlList如果是文件的话,则执行,目录则打开其目录并在Ctrllist里显示。我现在想如果是双击的是文件,则作其他的操作,如果是目录则还是执行以前的操作。表达能力有限,希望能说清楚了,谢谢各位了
rofole 2006-06-08
  • 打赏
  • 举报
回复
毛毛,SendMessage(WM_NOTIFY,NM_DBLCLK, (LPARAM)&nh);是想让他执行父类的程序。既不做拦截他所执行的结果。
rofole 2006-06-08
  • 打赏
  • 举报
回复
84830388(豆豆他爸),
由于父类是Codejock Software 里的CXTShellListCtrl,刚才试了不行,如果再建一个父类,不知道OnNMDblclk具体执行什么
striking 2006-06-08
  • 打赏
  • 举报
回复
LV_DISPINFO lvDispInfo;
lvDispInfo.hdr.hwndFrom = GetParent()->m_hWnd;
lvDispInfo.hdr.idFrom = GetDlgCtrlID();
lvDispInfo.hdr.code = LVN_ITEMCHANGED;
lvDispInfo.item.mask = LVIF_TEXT;
lvDispInfo.item.iItem = m_iItem;
lvDispInfo.item.iSubItem = m_iSubItem;
lvDispInfo.item.pszText = text
lvDispInfo.item.cchTextMax = text length
GetParent()->SendMessage( WM_NOTIFY, GetDlgCtrlID(),(LPARAM)&lvDispInfo);
化外之民 2006-06-08
  • 打赏
  • 举报
回复
冇得一点注释.
hamimelon 2006-06-08
  • 打赏
  • 举报
回复
SendMessage(WM_NOTIFY,NM_DBLCLK, (LPARAM)&nh);



handsomerun 2006-06-08
  • 打赏
  • 举报
回复
这里发送单击消息是干什么用的
84830388 2006-06-08
  • 打赏
  • 举报
回复
将父类中click事件中目前执行的语句封装成函数,然后在父类的click中调用,并且用该函数替换你这里的SendMessage调用就可以了。不必要用发送消息的方式。
languagec 2006-06-08
  • 打赏
  • 举报
回复
这样啊
内容概要:本文档围绕“基于双向反激变换器均衡的电池SOC(State of Charge,荷电状态)均衡仿真”这一主题,提供了一套完整的硕士论文复现资源,涵盖Simulink仿真模型与配套论文资料。该研究聚焦于电池管理系统(BMS)中的关键问题——多节串联电池间的荷电状态不一致,提出采用双向反激变换器作为能量转移单元,实现电池组内部各单体电池的主动均衡控制。资源内容详述了系统总体架构设计、双向反激变换器的工作原理与数学建模、SOC估算方法(可能涉及开路电压法、安时积分法及卡尔曼滤波等)、均衡控制策略(如基于SOC差异的阈值控制或更高级的优化算法)的设计与实现,并通过Simulink平台完成了整个系统的建模、控制逻辑搭建与仿真验证,充分展示了从理论分析到工程仿真的完整技术链条。; 适合人群:面向具备电力电子技术、自动控制理论及Simulink仿真基础的科研人员与工程技术人员,特别适用于从事电池管理系统(BMS)、新能源汽车、储能系统集成等领域的研究生、博士生及企业研发工程师。; 使用场景及目标:①复现并深入理解硕士论文中提出的基于双向反激变换器的电池SOC均衡方案;②学习并掌握利用Simulink进行电力电子变换器(特别是反激拓扑)建模与仿真的核心技能;③探究电池组能量均衡的控制逻辑与实现方法,为优化储能系统效率、延长电池寿命提供技术参考;④作为相关科研课题或工程项目的技术原型与实现基础,加速研发进程。; 阅读建议:建议使用者结合所提供的仿真模型与论文资料进行同步学习,重点剖析系统架构图、控制流程图及关键模块的参数设置。在仿真过程中,应积极调整控制参数(如均衡启动阈值、占空比等),观察不同工况下(如不同初始SOC差异、充放电倍率)的均衡效果与系统响应,以此深化对电池均衡技术动态特性的理解与掌握。

15,976

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧