AKB Forums

Go Back   AKB Forums > Technical sections > Languages, Compilers and Interpreters
Home Register Blogs FAQ Members List Calendar Downloads Arcade Mark Forums Read

Languages, Compilers and Interpreters C,C++,C#,.NET,Java,PHP,Perl,SQL and more

Troubles when posting message? Click here! :: Проблемы с отправлением сообщения? Нажмите сюда!

Reply
 
LinkBack Thread Tools Display Modes
Old Jan 26, 2002, 22:49   #1
Младенец
 
Join Date: Jan 2002
Location: Home
Posts: 8
Rep Power: 0
Reputation: 10
Question CEdit's Event

Objasnite pls, kak mogno zaxvatit' event<BR>ONKEYPRESSED (esli voobs'e est' takoj <IMG SRC="confused.gif" border="0"> ) u CEdit control-a. Obichnim metodom is Class Wizard -a ne poluchaetsja <IMG SRC="redface.gif" border="0">

V Builder-e eto raz pljunut', neugeli tut nado gluboko kopat'?

WBR
Areg is offline   Reply With Quote Quote selected
Old Jan 27, 2002, 00:20   #2
Administrator
 
acid's Avatar
 
Join Date: Sep 2001
Location: South Korea, Gumi
Posts: 7,163
Blog Entries: 15
Rep Power: 10
Reputation: 298
Exclamation

ni znau kakie obychnye metody ty proboval, no esli postavish svoi obrabotchik na EN_CHANGE to vse budet rabotat. Vot tut example dlja tebja.

<A HREF="http://users.freenet.am/~acid/Areg1.zip" TARGET=_blank>EditBoxExample</A>
__________________
Chat with acid


acid is offline   Reply With Quote Quote selected
Old Jan 27, 2002, 05:33   #3
Дошкольник
 
Basil REX's Avatar
 
Join Date: Jan 2002
Location: Yerevan
Posts: 78
Rep Power: 0
Reputation: 10
Post

Ob"jasni po-podrobnee kakoj event (ne v smysle nazvanija, a po suti) i zachem ty khochesh perekhvatit' i ja navernoe smogu ob"jasnit' kak eto sdelat'. <BR>Delo v tom chto v CEdit dlja raznykh celej po-raznomu eto delaetsja -- ja kak raz nedavno etim zanimalsja vplotuju. Esli khochesh mogu dlja primera prislat' kusok kida, kotoryj immitiruet smenu keyboard layout. No dlja drugikh celej po-drugomu delaetsja.
__________________
Per aspera ad astra!
Basil REX is offline   Reply With Quote Quote selected
Old Jan 27, 2002, 19:37   #4
Младенец
 
Join Date: Jan 2002
Location: Home
Posts: 8
Rep Power: 0
Reputation: 10
Question

Skoree problema v tom, kak uznat' kakaja<BR>imenno knopka bila naz'ata. Naprimer u dialog Window est' event WM_KEYDOWN,handler kotorogo v parametrax imeet podrobnuju informaciju o naz'atoj knopke. A u Edit boxa<BR>takogo netu(vo vsjakom sluchae v Class Wizard-e).

S drugoj storoni ne vse ge knopki<BR>vizivajut izmenenie EditBox-a (naprimer knopka 'Insert').
Areg is offline   Reply With Quote Quote selected
Old Jan 28, 2002, 00:11   #5
The Reloaded
 
Aram Hambardzumyan's Avatar
 
Join Date: Jan 2002
Location: behind the flesh and gelatinе of soft dull eyes
Posts: 3,178
Rep Power: 7
Reputation: 45
Post

по-моему, в разделе про ON_CONTROL_REFLECT в msdn - то что нужно
Aram Hambardzumyan is offline   Reply With Quote Quote selected
Old Jan 28, 2002, 01:04   #6
Administrator
 
acid's Avatar
 
Join Date: Sep 2001
Location: South Korea, Gumi
Posts: 7,163
Blog Entries: 15
Rep Power: 10
Reputation: 298
Post

Areg, u editbox-a imenno est' keydown, tol'ko on dal'she ne vsu informaciu posylaet svoemu roditelu, smotrit esli chto-to izmenilos' posylaet rodichu EN_CHANGE i vse. Samym pravil'nym na moi vzgljad budet <BR>sozdanie classa derived ot CEdit-a. Tam i lovish svoi WM_KEYDOWN skol'ko xochesh. Pervyi parametr funcii OnKeyDown tebe vydast virtual code tvoei knopki. Mozhesh eshe sostojanie knopok Shift, ALT itd. vyjasnit' ispol'zuja GetAsyncKeyState(...).

Code example-a lezhit na tom zhe meste.

Udachi.
__________________
Chat with acid


acid is offline   Reply With Quote Quote selected
Old Jan 28, 2002, 06:02   #7
Дошкольник
 
Basil REX's Avatar
 
Join Date: Jan 2002
Location: Yerevan
Posts: 78
Rep Power: 0
Reputation: 10
Post

2 Areg

Здесь вопрос в следующем. Если ты привязываешь Edit control непосредственно к классу CEdit, то сообщение WM_KEYDOWD будет обрабатываться default имплементацией функции OnKeyDown класса CEdit, которая просто переадресует его родителю, т.е. основному Dialog box-у. В этом случае сделать прегрузку этой функции невозможно -- перегрузка делается в унаследованном классе -- в этом и смысл перегрузки. Если в диалоге нет других controls или не имеет значения какой из control-ов диалога имеет фокус в момент нажатия клавиши, то перехват можно сделать функцией OnKeyDown самого диалога. Для этого просто открой ClassWizard для основного диалога и добавь handler для сообщения WM_KEYDOWN.

Если принципиально важно определить нажатую клавишу именно в момент, когда фокус у конкретного Edit control-а, то надо поступать следующим образом:<BR> -- создай свой класс, унаследованный от CEdit (например пусть он называется AEdit).<BR> -- переключись на ClassView и для своего класса (AEdit) добавь handler сообщения WM_KEYDOWN (он будет в списке). Для этого делаешь правый клик на классе AEdit и выбираешь пункт Add Windows Message Handler... и в полученную заготовку впиши свой код. Первый параметр этой функции даст тебе виртуальный код клавиши, а если захочешь опредеть состояние Shift или CapsLock в этот момент, то используй функцию GetAsyncKeyState( vKey )внутри своего OnKeyDown, где вместо vKey подставь VK_SHIFT или VK_CAPITAL соответственно - детали посмотришь в MSDN.<BR> -- для своего Edit control-а создай переменную (обычным образом, с помощью ClassWizard), но при этом Category установи в Value, а из списка Variable type выбери свой класс (AEdit) он там уже будет.

Вот и все. Если что-то не так будет - пиши.<BR>Удачи!
__________________
Per aspera ad astra!
Basil REX is offline   Reply With Quote Quote selected
Old Jan 28, 2002, 17:21   #8
Младенец
 
Join Date: Jan 2002
Location: Home
Posts: 8
Rep Power: 0
Reputation: 10
Talking

Sbpasibo vsem, no especially Basil REX-u,<BR>za intimnie podrobnosti nasledovanija CEdit-a<BR>... <IMG SRC="smile.gif" border="0"><BR>Teper' vsjo OK!

WBR
Areg is offline   Reply With Quote Quote selected
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT. The time now is 00:42.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
This board was founded on September 29, 2001
Powered by Viper Internet

Affordable Web Hosting | ParevNet

Buy text link