ошибка при SetParent

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

ошибка при SetParent

Сообщение iolaus » 14.10.2004 (Чт) 10:16

я помещаю свою кнопку на чужую форму...

SetParent Button2.hwnd, Anhwnd

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

пробовал спеально создать новый проект просто с пустой формой и помещать свою кнопку на неё, все нормально!!!!

почему это другое приложение выдает ошибку????
This message will self destruct in five seconds!!!

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 14.10.2004 (Чт) 10:49

Не понял... Ты пытаешься свою кнопку в другую программу запихать? Хм... Сумневаюсь, что что-нибудь получится...
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

iolaus
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 176
Зарегистрирован: 19.03.2002 (Вт) 18:33
Откуда: Москва

Сообщение iolaus » 14.10.2004 (Чт) 12:19

так почему не получится то???
setparent для того и нужен помоему.....

указал ему хвнд кнопки и формы на копорую кнопку надо положить и все работает....

только работает с ехе созданными на басике а вот с другими что-то у меня ошибка выдается...
This message will self destruct in five seconds!!!

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 14.10.2004 (Чт) 12:56

Сейчас попробовал - пашет (надо же, я был свято уверен, что в чужой процесс кнопка не полезет :ncool: ). Так вот, у меня кнопка перемещалась на любое окно... :?
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

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

Сообщение GSerg » 14.10.2004 (Чт) 15:07

Ну а как вы хотели...
Где-то в глубине контрола CommandButton скрывается обычный виндовский BUTTON... Поэтому он и перемещается через setparent. Но ведь есть же ещё ооп-оболочка, а она ожидает, что размещена в контейнере соответствующем...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

iolaus
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 176
Зарегистрирован: 19.03.2002 (Вт) 18:33
Откуда: Москва

Сообщение iolaus » 14.10.2004 (Чт) 21:04

ну так и какой вывод из этого??? у меня тоже получилось на разных процессах и только прога WinMX стала выдавать ошибку, я так понимаю из-за встроенного дебугера потому как он при ошибке сама решала что следует отправить отчет по инету...

так можно сделать чтоб всё было без проблем??? в какую сторону хоть думать???
This message will self destruct in five seconds!!!

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 15.10.2004 (Пт) 8:57

Я думаю, ничего не удастся у тебя, раз та прога такая "нехорошая".
Только если чужую прогу прямо в рантайме патчить ;-)

Tarik, как же так - я ведь совал свой пикчербокс к часикам, а это процесс explorer-а! http://vbrussian.com/Examples.asp?ID=102
Изображение

Mleha
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 146
Зарегистрирован: 06.10.2004 (Ср) 7:49
Откуда: Ангарск

Сообщение Mleha » 15.10.2004 (Пт) 12:05

Запомни SetParent работать будет только если суешь форму, а не Button, Frame..!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 15.10.2004 (Пт) 12:18

Mleha, а вот объясни мне, чем форма отличается от Button, Frame, TextBox, PictureBox и т.п.?
Lasciate ogni speranza, voi ch'entrate.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 15.10.2004 (Пт) 17:51

Цитата из Аппельмана для Mleha:
This function can be used to place VB controls inside of container controls at runtime (such as making a button a child window of a picture or frame control), or moving controls from one container control to another. When a control is moved to another parent, its position is based on the coordinate system of the new parent, thus it may be necessary to reposition the control in order for it to appear in the desired location.
Изображение

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 15.10.2004 (Пт) 18:31

Tarik, как же так - я ведь совал свой пикчербокс к часикам, а это процесс explorer-а! http://vbrussian.com/Examples.asp?ID=102

Век живи, век учись, как говорится :-)
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 15.10.2004 (Пт) 19:25

Было весело, когда я в своё окно запихал весь desktop с кнопкой Пуск, таскбаром и прочим ))))

Только пришлось давить на Reset, когда я своё окно закрыл :)

П.С. все ярлыки Рабочего стола лежат не на GetDesktopWindow, а на специальном ListView...

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

Сообщение GSerg » 15.10.2004 (Пт) 19:30

Ну не извращенец ли? :)
Скриншот почему не приаттачил???
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 15.10.2004 (Пт) 19:38

Скриншот? :) Забыл сделать, блин :)

Ладно, сегодня попробую вспомнить, как это было :)

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 15.10.2004 (Пт) 19:38

На самом деле в этой ситуации достаточно было нажать трипальца, вызвать Task Manager и уже в нем, в меню File > Run... выполнить:
explorer.exe
Стандартный рестарт шелла, ничего особенного...

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 15.10.2004 (Пт) 19:43

Ну, может быть :)

Просто у меня windows завис при всём этом...


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

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

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

    TopList  
cron