Использование стандартных классов окон в VB.

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
TEH3OP
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 143
Зарегистрирован: 12.12.2003 (Пт) 20:19
Откуда: Москва

Использование стандартных классов окон в VB.

Сообщение TEH3OP » 26.04.2004 (Пн) 10:06

Драсте.

Промблемма такая: Создал я UserControl, на котором никаких VB-контролов нету и есть процедура Init.
В Init'е я создаю "CreateWindowEx" окно RichEdit (lpClassName="RichEdit20W"), а родительским ему прописываю сам UserControl (hWndParent=UserControl.hWnd).

Ну так вот, ни UserControl ни сама форма VB ни хотят признавать его существование. Если я активирую форму, чикнув левой кнопкой мыфки на моём RichEdit, то фокус передаётся не ему а последнему VB-контролу на котором был фокус, если только он не был на самом RichEdit. По Tab'у фокус на RichEdit не прыгает (прыгает на UserControl только).
Что делать?
Как заставить VB признать существование нового окна для ввода текста?

------------------------
Заранее благодарен.

PS: Я Spy++'ом поморел -- все контролы VB, в форму главную шлют сообщение "WM_USER+3089". Мож в нём чё-то такое есть?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 27.04.2004 (Вт) 9:00

VB не признает. Потому что не является стандартное окно потомком Control.
Так что обрабатывай всякие бяки типа usercontrol_getfocus и юзай из них что-нибудь вроде setfocus(hwnd).
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

TEH3OP
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 143
Зарегистрирован: 12.12.2003 (Пт) 20:19
Откуда: Москва

Невесело...

Сообщение TEH3OP » 27.04.2004 (Вт) 23:53

GSerg писал(а):VB не признает. Потому что не является стандартное окно потомком Control.

Зинаю, а потому и спрашиваю.

GSerg писал(а):Так что обрабатывай всякие бяки типа usercontrol_getfocus и юзай из них что-нибудь вроде setfocus(hwnd).

Обрабатываю...

Но неужели нельзя VB форме сообщить о наличии контрола, пусть, хотябы кнопки влево/вправо/вверх/вниз не трогает...

PS: про Hook не надо мне рассказывать... ;-)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, The trick и гости: 6

    TopList