导航

MFC的对话框使用Scintilla

Posted on 2021-08-16 10:29  Hosseini  阅读(372)  评论(1编辑  收藏  举报

工作中需要做一个脚本编辑器的工具,用于代码补全、语法高亮、错误提示等功能,可以直接使用开源控件Scintilla,

网上有一些MFC的多文档使用Scintilla的例子,项目中使用的是对话框,自己实现了一遍,记录一下。

具体过程和上一篇中的win32中使用Scintilla基本一样,主要要注意的是:对话框需要添加OnNotify()函数,在里面处理消息。

BOOL CMFCApplication2Dlg::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
{
    // TODO: 在此添加专用代码和/或调用基类
    struct SCNotification* scn = (struct SCNotification*)lParam;
    LPNMHDR pnmh = (LPNMHDR)lParam;
    switch(pnmh->code)
    {
    case SCN_CHARADDED:
        {
            m_scintillaView.UpdateFunctionsTips(lParam);//函数提示
        }

//... ....
}

阿里云下载地址:https://www.aliyundrive.com/s/439ir95avjG