- 博客(7)
- 收藏
- 关注
原创 模板的类型萃取
C++面向过程不如C,面向对象不如java,其精华在于使用模板实现的泛型编程以及模板元编程,模板除了可以预编译,还有一个重要的特性---类型萃取,我们可以通过传入的参数,萃取出其类型,进行泛型编程。 下面来看一个用例,我们传入一个参数,将其类型打印出来。template struct JudgeType; //这是判断类型结构体,我们用他
2012-05-24 19:40:42 654
原创 寻找最近公共祖先算法(LCA)
最近做一个功能,需要对场景图中的多个节点回溯其最近公共祖先,这是一个常用的应用,搜索了一下,有tarjan算法。tarjan算法是一种离线算法,它需要一次输入所有的询问,然后有根节点开始进行深度优先遍历(DFS),在深度优先遍历的过程中,进行并查集(见文章参考链接)的操作,同时查
2011-08-04 21:29:17 1816
原创 CTreeCtrl获取焦点item的方法
<br />自己继承CTreeCtrl类,如CSelfTreeCtrl,重写NM_CLICK(单击消息),然后在这个重写函数里面发送一个消息到父窗口,不需要任何参数,由父窗口调用GetSelectedItem(),如HTREEITEM item = m_wndTree.GetSelectedItem(); 即可得到选中的Item,没选中则为NULL。<br /> <br />简单实用的应用,备忘
2011-05-17 00:49:00 971
原创 解决CMFCTabCtrl点“X”无法关闭Tab的方法
用VC2008风格做界面,CMFCTabCtrl是选项卡控制类,其中有EnableActiveTabCloseButton(BOOL)方法可以显示关闭按钮"X",但是点击以后无反应,在次点击程序就会崩溃,这是MFC的一个bug,详见此讨论帖:http://topic.csdn.net/u/20110120/12/35f605e1-f94f-4ff9-a470-d36124816b2b.html此帖中comey楼主解决了问题,他是这样做的:1,新建一个类继承自CMFCTabCtrl,即class CMyMFC
2011-03-20 16:41:00 3276 10
原创 获得listctrl控件选中项的值
listctrl没有单击其中一项的响应事件,只用NM_CLICK(指示用户已在控件内单击了鼠标左键)消息最为接近,只要在这个消息响应函数里添加:LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast(pNMHDR);// TODO: 在此添加控件通知处理程序代码BOOL bCheck = m_listCtrl.GetCheck(pNMItemActivate->iItem);CString username;if (bCheck){username = m_l
2010-11-29 17:53:00 1499
原创 使用BCGControlBar界面库时的预写注册表问题
使用BCGControlBar界面库时,发现菜单项居然修改不了了。上网搜索了一下,原来有这样一个问题:BCG每次编译后,将界面信息写入了注册表,其中.rc记录第一次生成时的信息,之后再对界面进行修改将发现其无效!? 解决方法1:将BCG在注册表中生成的项目下的setting文件夹删除。具体位置:HKEY_CURRENT_USER->software->“应用程序生成向导”->具体的
2009-05-14 20:16:00 1407 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人