0904号星期五的时候提到终止线程的四个方案,使用第一个方案实现了,达到了功能,其他几个方案等需要的时候再看看吧。持久化的问题还可以再放放,反正这个功能是跑不了的,可以多花些时间加强现在的功能。
回到3号提出的一个功能:
一、增加双击事件的需求
1,如果不是叶子节点:展开节点
2,如果该叶子节点是一个目录:使用Windows的explorer打开这个目录;
3,如果该叶子节点是一个文件:使用explorer打开其所在的目录;
二、双击事件的现有函数
双击一个可以展开的Item,可以在展开和折叠状态间切换,这个功能是什么函数实现的?如果不清楚的话,新建一个函数会覆盖掉这个功能,反而使功能被消减。
三、取得选中节点对应的文件夹
四、通过本程序调用外部程序的方法
五、双击事件及其响应的流程
一个事件的流程无外乎:
1, 触发,双击
由系统进行收集,很难干预。
2, 分发,系统或者自定义
3, 接受响应,系统或者自定义形式
4, 处理函数,有响应接受的模块来调用,来完成具体功能
_AFXCMN_INLINE BOOL CTreeCtrl::Expand(HTREEITEM hItem, UINT nCode)
{ ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, TVM_EXPAND, nCode, (LPARAM)hItem); }
进展不大,明天继续。