Разработка плагинов Botepad ++ в C ++: не может перейти к указанной строке сразу после открытия файлаC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Разработка плагинов Botepad ++ в C ++: не может перейти к указанной строке сразу после открытия файла

Сообщение Anonymous »

Я новичок в разработке плагинов Notepad ++, и я написал небольшую команду для навигации между файлами, очень похожа на функцию «прыжок к определению», которую вы выполняете для многих инструментов программирования. Впоследствии открывает другой файл, устанавливая курсор там в позицию, соответствующую слову, найденное. Это работает нормально. Что не работает, является ли прокрутка, чтобы сделать эту строку видимой и максимальной с SCI_SETFIRSTVISIBLELINE. < /P>
Как мне это сделать? Хотя я получаю событие (nppn_bufferactiviviviviviving), это все еще кажется слишком рано. Когда я отправляю sci_setfirstvisibleline в уже открытый файл, тогда блокнот ++ прыгает правильно. < /P>

Как воспроизвести: < /p>
Загрузите шаблон плагина свыше, Open Plugindefinition.cpp, вы найдете две команды. Опустошить тело одного из них и добавить: < /p>
std::wstring filepath = L"PATH TO A LONG TEXT FILE";
::SendMessage(nppData._nppHandle, NPPM_DOOPEN, 0, (LPARAM)filepath.c_str()); // works

int which = -1;
::SendMessage(nppData._nppHandle, NPPM_GETCURRENTSCINTILLA, 0, (LPARAM)&which);
HWND curScintilla = (which == 0) ? nppData._scintillaMainHandle : ppData._scintillaSecondHandle;
int line = 300; // go to line 300
::SendMessage(curScintilla, SCI_GOTOLINE, line - 1, 0); // works
::SendMessage(curScintilla, SCI_SETFIRSTVISIBLELINE, line - 1, 0); // does NOT work
//::SendMessage(curScintilla, SCI_SCROLLCARET, 0, 0); // works sometimes


Подробнее здесь: https://stackoverflow.com/questions/797 ... ht-after-o
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»