Автор: Vitalic76
Дата сообщения: 30.04.2005 00:54
закладки (как я их ввинтил в акелпад)
int bookY[9]={0,0,0,0,0,0,0,0,0}
int bookX[9]={0,0,0,0,0,0,0,0,0}
...
void DoSetBookmark(HWND hWndEdit, int iMark){
CHARRANGE chrg;
int line,column;
SendMessage(hWndEdit,EM_EXGETSEL,0,(LPARAM)&chrg);
line=SendMessage(hWndEdit,EM_EXLINEFROMCHAR,0,chrg.cpMin)+1;
bookY[iMark]=line;
column=SendMessage(hWndEdit,EM_LINEINDEX,line-1,0); //column=index of first character in that string
bookX[iMark]=chrg.cpMin-column+1;
}
void DoGetBookmark(HWND hWndEdit, int iMark){
CHARRANGE chrg;
int column;
SendMessage(hWndEdit,EM_EXGETSEL,0,(LPARAM)&chrg);
if (bookY[iMark]){
chrg.cpMin=SendMessage(hWndEdit,EM_LINEINDEX,bookY[iMark]-1,bookX[iMark]);
column=SendMessage(hWndEdit,EM_LINEINDEX,bookY[iMark]-1,0);
column=chrg.cpMin+bookX[iMark]-1;
chrg.cpMax=chrg.cpMin=column;
SendMessage(hWndEdit,EM_EXSETSEL,0,(LPARAM)&chrg);
}
}
...
при нажатии Ctrl+1...9 вызываю DoSetBookmark с 1...9 соответственно
при нажатии Alt+1..9 DoGetBookmark