龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

实现类似VC中可设断点的编辑窗口[图]

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
运行效果图如下: 想做一个跟踪调试工具,于是到网上找类似VC可设置断点的EditView,可惜没找到(呵呵,俺E文不好,没去国外站点找)。那就自己做一个吧!! 唉!!为了这个小东西

  运行效果图如下:

  想做一个跟踪调试工具,于是到网上找类似VC可设置断点的EditView,可惜没找到(呵呵,俺E文不好,没去国外站点找)。那就自己做一个吧!!

  唉!!为了这个小东西俺可是走了不少弯路!!

  还好,今天终于做好了,拿出来与大家分享。

  1、 创建一个工程………………俺不多说了,记住要选CeditView.

  2、 在OnInitialUpdate()中设置EDIT的Margin,当然留出的空间用来画断点或行号等。并得到行高。

SIZE size;
GetTextExtentPoint(GetDC()->GetSafeHdc (),"A",1,&size);
m_LineHeight = size.cy;    //得到行的高度
CEdit& theEdit = GetEditCtrl ();
theEdit.SetMargins (m_LineHeight+6,0);  //设置编辑框的左边界
theEdit.SetLimitText(10 * 1024);  //设置输入的最大文本
  3、 保存断点的行号我用STL的list。

AddRemoveBP(int point)
{
   IntList::iterator it;
   it = find(lBreakPoint.begin (), lBreakPoint.end (), point);
   if( it != lBreakPoint.end () )   //如果此行为设置了断点的行则删除否则添加
     lBreakPoint.erase (it);
   else
     lBreakPoint.push_back (point);
}

精彩图集

赞助商链接