mfc c语言 编辑器,语法高亮编辑控件Scintilla在MFC中的简单使用

项目中要使用代码编辑器,搜索之后,发现了强大的编辑器控件Scintilla。

1.简介

Scintilla是一款开源的语法高亮编辑器控件,官方网站:http://www.scintilla.org/。Scintilla是最优秀的编辑控件之一,实现了语法高亮,代码折叠,书签,自动完成等等诸多功能,速度快,源代码也比较好理解,易于扩展,易于增加对新语言的支持。 比较著名的scite,Notepad++,Notepad2都是基于Scintilla开发的。Scintilla提供了Win32版本和Linux版本,在Windows下,它是一个窗体控件,对它的控制都通过发送消息来完成:

LRESULT SendMessage(HWND hWndScintilla,UINT Msg,WPARAM wParam,LPARAM lParam);

Scintilla提供了大量的消息API,每个消息可以带有0个、1个或2个参数。SendMessage函数中的消息,通常带有2个参数:wParam和lParam,没有使用的参数,则设置为0。对于大多数SCI_SETxxxxx设置类消息,都会有一个对应的SCI_GETxxxxx查询消息。

下面的图片是一个数控NC程序编辑器Demo:

0818b9ca8b590ca3270a3433284dd417.png

2.在MFC中的简单使用

2.1载入Scintilla链接库

首先,将SciLexer.dll复制到项目中。

a.在CwinApp下添加成员:

HMODULE m_hDll;

并初始化为NULL。

b.在InitInstance中载入DLL:

C++代码

m_hDll = LoadLibrary(_T("SciLexer.dll"));

if(m_hDll==NULL)

{

AfxMessageBox("LoadLibrary SciLexer.dll failure...");

}

c.在ExitInstance中卸载DLL:

C++代码

if (m_hDll != NULL)

{

FreeLibrary(m_hDll);

}

2.2 创建一个封装Scintilla的类 — CScintillaWnd

C++代码

//-------------------------------------------------------

// ScintillaWnd.h

#pragma once

//注意:这俩文件来自Scintilla的include目录

#include "Scintilla.h"

#include "SciLexer.h"

// CScintillaWnd

classCScintillaWnd :publicCWnd

{

DECLARE_DYNAMIC(CScintillaWnd)

public:

CScintillaWnd();

virtua

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值