Консультация № 171582
24.08.2009, 18:57
0.00 руб.
0 13 0
Здравствуйте уважаемые!
Имеется однострочный EditBox.
Как средствами API считать из заданной позиции символ из этого EditBox-а.
Спасибо за ответы!

Обсуждение

давно
Старший Модератор
17042
808
24.08.2009, 20:08
общий
kool:
Вы не получите ответа на Ваш вопрос до тех пор, пока не укажете:
а) Операционную систему, под которой работаете;
б) среду разработки / компилятор.
Телепатов тут, вроде, нет.
Об авторе:
We have but faith: we cannot know;
For knowledge is of things we see;
And yet we trust it comes from thee,
A beam in darkness: let it grow.
-----
https://www.linkedin.com/in/andreynkuznetsov
https://www.researchgate.net/profile/Andrey_Kuznetsov11
http://www.researcherid.com/rid/K-8824-2014
Неизвестный
24.08.2009, 22:16
общий
Операционная система - WXP+SP2
Компилятор MSVC++ версия #6
Неизвестный
24.08.2009, 22:41
общий
а какой Edit - однострочный или multiline?
Неизвестный
24.08.2009, 22:45
общий
Цитата - "Имеется однострочный EditBox."
Неизвестный
24.08.2009, 23:44
общий
Позиция - номер символа в строке или координата на экране? Если первое, то скорее всего, он только целую строчку вернуть может.
А вообще, вот страница из МСДН:
ms-help://MS.MSDNQTR.v90.en/shellcc/platform/commctls/editcontrols/editcontroltextoperations.htm#selecting_text
Неизвестный
25.08.2009, 02:15
общий
наверное проще всего получить всю строку сообщением WM_GETTEXT, а потом выбрать нужный символ
еще можно попробовать выделить нужный символ и скопировать в буфер
какие точно сообщения не помню, что то вроде SET_SELECTION и COPY
Неизвестный
25.08.2009, 06:37
общий
Наверное кроме как копирования всего содержимого в память по другому не получится
давно
Посетитель
7438
7205
25.08.2009, 12:16
общий
Alex_S:
Clipboard можно использовать, но только, если надо скопировать либо в Edit, либо в ComboBox. (Кстати, используются сообщения EM_SETSEL, WM_COPY, WM_PASTE)
Скопировать с помощью clipboard в произвольный буфер не получится.
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Неизвестный
25.08.2009, 18:32
общий
Лучше использовать EM_GETLINE, EM_SETLINE.
Неизвестный
25.08.2009, 22:18
общий
http://msdn.microsoft.com/en-us/library/bb775456(VS.85).aspx#text_buffer

или
использовать стиль DS_LOCALEDIT
создать свой текстовый буфер и сразу считывать из него то, что вам нужно
Неизвестный
26.08.2009, 19:10
общий
The EM_SETHANDLE and EM_GETHANDLE messages apply only to multiline edit controls.
Тк что это все для multiline edit controls. У меня же singleline edit control.
.
Неизвестный
26.08.2009, 23:03
общий
сделайте свой EDIT control
такой, как вам нужно
и пусть он обрабатывает сообщение EM_GETONECHARFROMBUFFER, выдавая нужный символ
Неизвестный
27.08.2009, 19:14
общий
Мне кажется проще воспользоваться тем что есть и копировать все содержимое в буфер, а уже потом искать нужный символ.
Сделал - получилось неплохо.
Форма ответа