информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Все любят медГде водятся OGRы
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 700 с лишним git-серверов пострадало... 
 От повторного пришествия Шаи-Хулуда... 
 Крупный сбой Azure и других сервисов... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Это не прокатит если в Edit вставить текст с помощью мыши. 15.09.01 10:54  Число просмотров: 1022
Автор: Glory <Mr. Glory> Статус: Elderman
<"чистая" ссылка>
Лучше написать обработчик события OnChange, и если позиция курсора нужна в символах, тогда просто узнавать длину строки и все. А если в пикселах - тогда геморой получится, потому что заранее неизвестна гарнитура шрифта в Edit'e.
<programming>
как узнать положение курсора в editbox'е ? 12.09.01 17:17  
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
в смысле не мыши, а клавиатуры (мигает который) :)

я не нашёл стандартного средства
может я плохо искал

если есть идеи насчёт нестандартных средств - поделитесь плиз :)
может кому что то в голову прийдёт более разумное чем мне :)

p.s.
я переопределяю класс editbox'а и мне это нужно узнать из моей новой WindowProc
как узнать положение курсора в editbox'е ? 15.09.01 04:22  
Автор: Степан Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> в смысле не мыши, а клавиатуры (мигает который) :)
>
> я не нашёл стандартного средства
> может я плохо искал
>
> если есть идеи насчёт нестандартных средств - поделитесь
> плиз :)
> может кому что то в голову прийдёт более разумное чем мне
> :)
>
> p.s.
> я переопределяю класс editbox'а и мне это нужно узнать из
> моей новой WindowProc

Можно так: на соыбтия onKeyDown цепляешь счетчик. И в зависимости от нажатой кнопки i+1 или i-1. вот и все.
Это не прокатит если в Edit вставить текст с помощью мыши. 15.09.01 10:54  
Автор: Glory <Mr. Glory> Статус: Elderman
<"чистая" ссылка>
Лучше написать обработчик события OnChange, и если позиция курсора нужна в символах, тогда просто узнавать длину строки и все. А если в пикселах - тогда геморой получится, потому что заранее неизвестна гарнитура шрифта в Edit'e.
всё не так просто :) 16.09.01 17:37  
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
я забыл сказать что едитбокс может быть многостроковым :)
тогда ещё возможны вверх вниз pgup pgdn

выход нашёлся, но очень кривой :)
если коротко, то вот так (у меня там ещё дргуие есть задачи и соответствующие варианты) :
1) если одна строка, то удаляю всё до конца (эмулирую VK_DELETE) и потом узнаю длину строки и восстанавливаю прежнее состояние
2) если несколько строк, то эмулирую VK_RIGHT (или VK_LEFT - если курсор на последней строке) и в момент когда меняется номер текущей строки запрашиваю позицию первого символа в этой строке, а потом восстанавливаю прежнее состояние

проблема теперь в том как заставить едитбокс в процессе этих извращений не мигать (когда он перерисовывается)

если кто то подскажет не очень кривой способ - заранее большое спасибо :)

p.s.
с помощью LockWindowUpdate() удалось заставить не мигать скроллбары :)
содержимое окна всё равно иногда мигает
А чем em_lineindex,linefromchar,getsel не подошли? 18.09.01 00:20  
Автор: Бяша <Biasha> Статус: Member
<"чистая" ссылка>
так я их и использую 18.09.01 01:47  
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
но ими нельзя напрямую получить положение курсора в тексте
можно только номер текущей строки и номер первого символа в этой строке
а getsel можно использовать только когда есть выделенный блок
странно... Но работает. 18.09.01 04:26  
Автор: Бяша <Biasha> Статус: Member
<"чистая" ссылка>
> но ими нельзя напрямую получить положение курсора в тексте
> можно только номер текущей строки и номер первого символа в
> этой строке
Так точно.

> а getsel можно использовать только когда есть выделенный
> блок
странно...
я всегда считал (а значит где-то это прочитал), что, в случае отсутствия выделения, в *wParam запишут позицию курсора в тексте. Но сейчас гляжу в мсдн и ничего подобного там не написано...
Удивительно, неужели это недокументированный прикол...
Должно быть, просто, считается, что всегда какой-то текст выделен, а именно - текст, на котором палочка моргает.
#$%@&$#*$ !!! :))) спасибо огромное :)) 18.09.01 10:03  
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 1 s   Design: Vadim Derkach