информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Где водятся OGRыСтрашный баг в WindowsПортрет посетителя
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Очередное исследование 19 миллиардов... 
 Оптимизация ввода-вывода как инструмент... 
 Зловреды выбирают Lisp и Delphi 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
если вы видите этот текст, отключите в настройках форума использование JavaScript
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
[VC++] Работа с EditBox 18.09.03 03:39  Число просмотров: 1355
Автор: vh <Дмитрий> Статус: Member
Отредактировано 18.09.03 03:52  Количество правок: 1
<"чистая" ссылка>
>
> 3) Для того, чтобы в визарде, появилось то что надо Вам,
> следует, на мой взгляд:
> - создать некий класс CMyEdit: public СEdit;
> - переопределить там всё, что Вам надо обрабатывать. Тогда
> для этого класса CMyEdit Вам будет доступна обработка
> WM_KEYDOWN.
> - после того, как нарисуете КОНТРОЛ (Edit Control) на
> диалоге, для этого контрола необходимо создать переменную -
> член Вашего класса, например, диалога. В разных случаях и
> для разных целей это делаю различным образом. Можете
> визардом, или руками (в последнем случае не забудьте
> добавить DDX_Control(pDX, IDC_ВАШ_ИДС,
> m_EditВаша_Перемернная_Член);)
> В вашем случае можно вначале визардом, а потом изменить
> базовый класс CEdit на CMyEdit руками.

Спасибо большое. Догнался.

>
> > По-моему, быстрее всего получить текущий текст
> контрола,
> > запихнуть туда то что надо, и записать новый текст
> обратно.
>
> Он не может пока получить "текущий" текст.

Прошу прощения, а можно поподробней?
Копировать, прибавлять, обратно записывать не кажется мне хорошей идеей :(
<programming>
[VC++] Работа с EditBox 16.09.03 21:38  
Автор: vh <Дмитрий> Статус: Member
<"чистая" ссылка>
прошу прощения за такие вопросы, просто очень срочно нужно.
вот короче есть EditBox (куда пишется и где редактируется текст)
требуется:
1) чтобы после каждого ввода каколибо символа вызывалась моя функция (ну нету почему то в Сlass Wizard'е события OnKeyDown для CEdit )
2) к имеющемуся тексту в этом контроле добавить один символ как можно более оптимальным методом.

если кто еще не понял, пишу чтото наподобие HyperTerminal

спасибо
[VC++] Работа с EditBox 16.09.03 23:20  
Автор: Ktirf <Æ Rusakov> Статус: Elderman
<"чистая" ссылка>
> 1) чтобы после каждого ввода каколибо символа вызывалась
> моя функция (ну нету почему то в Сlass Wizard'е события
> OnKeyDown для CEdit )
Зато есть OnChar ;)

> 2) к имеющемуся тексту в этом контроле добавить один символ
> как можно более оптимальным методом.
По-моему, быстрее всего получить текущий текст контрола, запихнуть туда то что надо, и записать новый текст обратно.
[VC++] Работа с EditBox 17.09.03 01:25  
Автор: void <Grebnev Valery> Статус: Elderman
<"чистая" ссылка>
> > 1) чтобы после каждого ввода каколибо символа
> вызывалась
> > моя функция (ну нету почему то в Сlass Wizard'е
> события OnKeyDown для CEdit )

1) Для CEdit (в буквальном смысле) по определению не может быть никаких событий в Сlass Wizard'е (если, конечно, этот визард написан не Вами;)) - это фаундейшен. Обращаю внимание на буквальность моей формулировки.

2) На мой взгляд, Вы немного путаете понятие "пропертей" контрола (Edit Control), который нарисован на диалоге, и которыми можно управлять при помощи визарда VC, и понятие обработчиков событий класса (дерайвед CEdit), которыми можно тоже управлять из "визарда", и который СВЯЗАН с Вашим контролом, и для которого создана переменная-член, например, в классе Вашего диалога..

3) Для того, чтобы в визарде, появилось то что надо Вам, следует, на мой взгляд:
- создать некий класс CMyEdit: public СEdit;
- переопределить там всё, что Вам надо обрабатывать. Тогода для этого класса CMyEdit Вам будет доступна обработка WM_KEYDOWN.
- после того, как нарисуете КОНТРОЛ (Edit Control) на диалоге, для этого контрола необходимо создать переменную - член Вашего класса, например, диалога. В разных случаях и для разных целей это делаю различным образом. Можете визардом, или руками (в последнем случае не забудьте добавить DDX_Control(pDX, IDC_ВАШ_ИДС, m_EditВаша_Перемернная_Член);)
В вашем случае можно вначале визардом, а потом изменить базовый класс CEdit на CMyEdit руками.

> По-моему, быстрее всего получить текущий текст контрола,
> запихнуть туда то что надо, и записать новый текст обратно.

Он не может пока получить "текущий" текст.
[VC++] Работа с EditBox 18.09.03 03:39  
Автор: vh <Дмитрий> Статус: Member
Отредактировано 18.09.03 03:52  Количество правок: 1
<"чистая" ссылка>
>
> 3) Для того, чтобы в визарде, появилось то что надо Вам,
> следует, на мой взгляд:
> - создать некий класс CMyEdit: public СEdit;
> - переопределить там всё, что Вам надо обрабатывать. Тогда
> для этого класса CMyEdit Вам будет доступна обработка
> WM_KEYDOWN.
> - после того, как нарисуете КОНТРОЛ (Edit Control) на
> диалоге, для этого контрола необходимо создать переменную -
> член Вашего класса, например, диалога. В разных случаях и
> для разных целей это делаю различным образом. Можете
> визардом, или руками (в последнем случае не забудьте
> добавить DDX_Control(pDX, IDC_ВАШ_ИДС,
> m_EditВаша_Перемернная_Член);)
> В вашем случае можно вначале визардом, а потом изменить
> базовый класс CEdit на CMyEdit руками.

Спасибо большое. Догнался.

>
> > По-моему, быстрее всего получить текущий текст
> контрола,
> > запихнуть туда то что надо, и записать новый текст
> обратно.
>
> Он не может пока получить "текущий" текст.

Прошу прощения, а можно поподробней?
Копировать, прибавлять, обратно записывать не кажется мне хорошей идеей :(
[VC++] Работа с EditBox 18.09.03 08:23  
Автор: void <Grebnev Valery> Статус: Elderman
<"чистая" ссылка>
> >
> > > По-моему, быстрее всего получить текущий текст
> > контрола,
> > > запихнуть туда то что надо, и записать новый
> текст
> > обратно.
> >
> > Он не может пока получить "текущий" текст.
>
> Прошу прощения, а можно поподробней?
> Копировать, прибавлять, обратно записывать не кажется мне
> хорошей идеей :(

Мне кажется идея Ktirf-a хорошей идеей. Хотя, конечно, Вам виднее.
Если я правильно понял Ktirf-a, то он говорит о том, что часто разделяют, что есть буфер, для хранения и ОБРАБОТКИ данных (чтение, преобразование, передача), а что есть средство визуализации.
А ещё лучше разделять классы, которые собственно делают что-то с данными, с классами, которые визуализируют данные. Т.е. тараканы и котлеты - отдельно. Простите за банальность и за некоторый налёт нотации.

PS. Я уверен, что Вы и сами всё это знаете.
Простите, а что означает термин "догнался"? Я спрашиваю, поскольку знаю несколько употреблений этого слова.
Догнался - перестал лениться думать и наконец врубился :) 18.09.03 14:57  
Автор: vh <Дмитрий> Статус: Member
<"чистая" ссылка>
> Мне кажется идея Ktirf-a хорошей идеей. Хотя, конечно, Вам
> виднее.
> Если я правильно понял Ktirf-a, то он говорит о том, что
> часто разделяют, что есть буфер, для хранения и ОБРАБОТКИ
> данных (чтение, преобразование, передача), а что есть
> средство визуализации.

Ну да, так и пришлось сделать. Хранить собственный буфер который является отражением того, что высвечивается на дисплее.

Просто обидно все время знать, что в памяти существуют две копии одних и тех же данных.
1




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


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