Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > SetParent и PictureBox в UserControl'e


Автор: anian 22.12.2006, 11:14
Есть UserControl, в нем пикчер pic
По клику на одной из нескольких областей контрола над ним должен появится пикчер, который до поры невидимый. Делаю так:
Код

    lpStyle = GetWindowLong(pic.hwnd, GWL_EXSTYLE)
    SetWindowLong pic.hwnd, GWL_EXSTYLE, lpStyle Or WS_EX_TOOLWINDOW

        'отвязываем пикчер от контрола, привязываем к десктопу...но не нужно ли предварительно поставить ему WS_CHILDWINDOW?

SetParent pic.hwnd, GetDesktopWindow()


Пикчер появляется, но при клике по нему вываливается IDE'шка, в откомпиленом виде работает

Автор: BorisVorontsov 22.12.2006, 12:11
Вот наглядный пример того, как не надо задавать вопрос...

Текст логически не сочетается с кодом. Переформулируй вопрос и задачу.

Автор: anian 22.12.2006, 12:49
Цитата

Вот наглядный пример того, как не надо задавать вопрос...

Текст логически не сочетается с кодом. Переформулируй вопрос и задачу. 


А что вам, собственно, не понятно? Опосля всего этого пишем pic.visible=True и видим наш пикчер...хотя, забыл уточнить, что пикчер больше самого контрола по размерам, и контрол ресайзить нельзя...но это не особо важно

Автор: Kirill89 22.12.2006, 15:56
Цитата(anian @  22.12.2006,  11:14 Найти цитируемый пост)
 в откомпиленом виде работает 

И в чём тогда проблема?

Автор: anian 25.12.2006, 05:29
to Kirill89:

То есть, Вы предлагаете отлаживать контрол, каждый раз компиляя прогу? Не до такой степени я извращенец...

Автор: anian 25.12.2006, 07:38
Решил убрать для проверки дроп-даун пикчера, и просто отображать его по клику внутри контрола...а в контроле еще и текстбокс есть...
Дак вот, фокус изначально ставится на него, и при клике на контрол, он этот фокус теряет, генерирует событие Validate, которое обрабатывает содержимое текстбокса и генерирует Validate, но уже от имени контрола - и вот тут IDE'шка радостно вываливается...
Одинаковые имена? но объекты разные...не понимай...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)