Scintilla控件在Win32环境下的使用(二)
这节的目标就是写出语法高亮,代码折叠这两个效果。
还是首先给大家发个效果图看一下:

主要参考文档:
http://www.cnblogs.com/superanyi/archive/2011/04/07/2008632.html
http://www.cnblogs.com/superanyi/archive/2011/04/07/2008636.html
当然官方文档是必不可少的。
其实有了第一节的工作,如果你玩过vim,那么接下来的工作有点类似于配置.vimrc文件了。
只不过比配置vimrc文件麻烦的是我们要自己确定发送消息的时机。
让Scintilla支持语法高亮
有了前面的SendEditor控制函数,我们就可以配置语法高亮了,下面这段代码可以使我们的Scintilla控件显示C++语法高亮代码:
#define MARGIN_FOLD_INDEX 2 if(lpnmhdr->hwndFrom==hwndScintilla){switch(lpnmhdr->code){case SCN_MARGINCLICK:if (notify->margin == MARGIN_FOLD_INDEX){line_number = SendEditor(ptr,SCI_LINEFROMPOSITION,notify->position,0);SendEditor(ptr,SCI_TOGGLEFOLD, line_number,0);}break;}}好啦。这样一来我们就实现了代码高亮和代码折叠这两个功能了。如果想继续深入学习更多scintilla的功能的话,就只能啃读官方文档了。