StructSize
Это поле должно содержать размер структуры EditorSelect
. Перед использованием структуры плагин должен заполнить поле.
BlockType
Одно из следующих значений (перечисление
EDITOR_BLOCK_TYPES):
Если
BlockType = BTYPE_NONE
, другие поля этой структуры не важны.
BlockStartLine
Первая строка блока. Можно установить это поле в -1
- началом блока будет текущая строка.
BlockStartPos
Начальная позиция блока. Если BlockStartPos = -1
, то выделение блока снимается.
BlockWidth
Ширина блока. Может быть отрицательной величиной.
BlockHeight
Высота блока. Должна быть >= 1.
Программно строковый блок от (X1,Y1) до (X2,Y2) можно выделить так:
es.BlockType=BTYPE_STREAM;
es.BlockStartLine=min(Y2,Y1);
es.BlockStartPos=(Y1 < Y2?X1:X2);
// небольшая коррекция, если позиции равны
if(X1 == X2)
es.BlockStartPos+=(Y1 < Y2?1:-1);
es.BlockHeight=max(Y1,Y2)-min(Y1,Y2)+1;
if(Y1 < Y2)
es.BlockWidth=X2-X1+1;
else
es.BlockWidth=X1-X2+1;
if(X1 == X2)
{
if(Y1 < Y2)
es.BlockStartPos--;
else
es.BlockStartPos++;
}
Info.EditorControl(-1,ECTL_SELECT,0,(void*)&es);