Scintilla笔记(1)

本文介绍如何将Scintilla编辑器嵌入到MFC应用程序中,包括声明成员变量、创建Scintilla控件、调整其大小及重写绘图函数。
Scintilla笔记(1)
Scintilla嵌入MFC
Scintilla作为一款优秀的源码编辑器,提供了非常强大的功能,如: 源码编辑、语法高亮、错误提示、代码助手、调用提示、添加标记、设置页边、折叠代码、高亮当前行、设置Tab等等。
Scintilla在网上能找到的资料都比较少,要想最大化的使用Scintilla控件,就必须结合官网和其他开源软件来了解Scintilla,Scintilla官网: http://www.scintilla.org/
目前有非常多的开源软件都是使用Scintilla控件,例如NotePad++、CodeBlocks等等( http://www.scintilla.org/ScintillaRelated.html列举了使用Scintilla的软件)。
因为本人一直使用MFC作为开发工具,则使用了CScintillaCtrl作为Scintilla的上层封装,CScintillaCtrl对Scintilla控件进行了MFC的封装,使编码人员能够非常高效和清楚的使用Scintilla控件,下载: http://www.naughter.com/scintilla.html
下面讲一下将Scintilla嵌入MFC程序中:
1.在MFC程序的View中声明一个CScintillaCtrl的成员变量:


class XXXView : public CView
{
private:
CScintillaCtrl m_ScintillaEdit;

}

2.在View中OnCreate中创建Scintilla控件:

int CViewST::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
     if (CView::OnCreate(lpCreateStruct) == -1)
           return -1;

     // TODO:  在此添加您专用的创建代码
     CRect r(0,0,10,10);
     if (!m_ScintillaEdit.Create(WS_CHILD|WS_VISIBLE|WS_TABSTOP, r, this, 0))
           return -1;
     return 0;
}


3.在OnSize中设置Scintilla控件大小:

void CViewST::OnSize(UINT nType, int cx, int cy)
{
     CView::OnSize(nType, cx, cy);


    if (!m_ScintillaEdit.GetSafeHwnd())
    {
        // 如果控件未创建则直接返回
        return;
    }

     CRect r;
     GetClientRect(&r);
     m_ScintillaEdit.MoveWindow(&r);
}
4.重写OnPaint()虚函数:

virtual void OnPaint() { Default(); }

这样就完成了将Scintilla嵌入到MFC中。

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值