Vitalic76
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору закладки (как я их ввинтил в акелпад) 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 |