Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Платформы Windows Mobile и Windows Embedded > edit


Автор: KAPJICOH 17.7.2006, 07:08
Как в edit выставить позицию курсора? Вот так создаю сам edit:
Код

edit = CreateWindow(TEXT("edit"),NULL,WS_VISIBLE|WS_CHILD|ES_AUTOHSCROLL|ES_AUTOVSCROLL|ES_LEFT|ES_MULTILINE|ES_READONLY|
                        WS_HSCROLL,rcClient.left,rcClient.top,rcClient.right - rcClient.left - 1,
                        rcClient.bottom - rcClient.top - 1,parent,(HMENU)10000,hInst,NULL);

Вот пытаюсь установить позицию, но ничего не работает:
Код

SendMessage(edit,EM_SCROLLCARET,0,0);

Заранее спасиба. 

Автор: Snowy 17.7.2006, 09:59
Например поставить курсор в 3-ю позицию:
Код

SendMessage(edit, EM_SETSEL, 3, 3);
 

Автор: KAPJICOH 17.7.2006, 10:15
Snowy, спасиба, все работает. 

Еще один вопрос, вот так
Код

SendMessage(edit,EM_SCROLLCARET,0,0);

возможно передвинуть курсор только на 1 строчку? 

Автор: Snowy 17.7.2006, 10:28
Цитата(KAPJICOH @  17.7.2006,  10:15 Найти цитируемый пост)
возможно передвинуть курсор только на 1 строчку? 
На одну строчку или на первую? Или на один символ?
Если речь идет о поле редактирования, то координаты выставляются так:
Код

  DWORD CharIdx = SendMessage(Handle, EM_LINEINDEX, Y, 0) + X;
  SendMessage(Handle, EM_SETSEL, CharIdx, CharIdx);
где X и Y - нужные тебе позиция и строка в тексте.

Добавлено @ 10:30 
Полный список сообщений в MSDN в разделе "Edit Boxes Messages" 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)