Прозрачность дочерней формы

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Vyazikov
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 14.01.2009 (Ср) 12:27

Прозрачность дочерней формы

Сообщение Vyazikov » 19.01.2009 (Пн) 15:21

Добрый день.
Вопрос 1.
Столкнулся с проблемой, Мне нужно сделать в моем приложении, дочерная форма была полупрозрачной. Обыскал весь форум, пробовал разные варианты, работают отлично, но как только форму вызываю как дочерную, примеры отказываются работать. Приведу пример,

Код: Выделить всё
Const LWA_COLORKEY = &H1
Const LWA_ALPHA = &H2
Const GWL_EXSTYLE = (-20)
Const WS_EX_LAYERED = &H80000
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long

Private Sub Command1_Click()
   'KPD-Team 2000
   'URL: http://www.allapi.net/
   'E-Mail: KPDTeam@Allapi.net
   Dim Ret As Long
   'Set the window style to 'Layered'
   Ret = GetWindowLong(Me.hWnd, GWL_EXSTYLE)
   Ret = Ret Or WS_EX_LAYERED
   SetWindowLong Me.hWnd, GWL_EXSTYLE, Ret
   'Set the opacity of the layered window to 128
   SetLayeredWindowAttributes Me.hWnd, 0, 128, LWA_ALPHA
End Sub


вопрос 2
Как запустить отдельный ЕХЕшник (Мой скомпилированный проект) в родительском окне?? тоесть не другую форму в томже проекте, а отдельный ЕХЕ файл взятый из другого места, но в рамках родительского окна
Последний раз редактировалось Vyazikov 19.01.2009 (Пн) 15:54, всего редактировалось 1 раз.

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Прозрачность, доченой формы

Сообщение MIT » 19.01.2009 (Пн) 15:47

0) Пожалуйста, убери запятую из названия темы - она там нафиг не нужна
1) Меняй Me.hWnd на ДочерняяФорма.hWnd
2) Перечитал 3 раза, но не понял о чем ты. Поясни.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Прозрачность дочерней формы

Сообщение Viper » 19.01.2009 (Пн) 15:56

1. Где выполняется указанный код?
2. Что значит в пределах родительского окна? Как это вообще можно запустить выполняемый файл в пределах окна. Что ты под этим подразумеваешь?
Весь мир матрица, а мы в нем потоки байтов!

Vyazikov
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 14.01.2009 (Ср) 12:27

Re: Прозрачность дочерней формы

Сообщение Vyazikov » 19.01.2009 (Пн) 16:05

изменил ))
Подробнее о вопросе номер 1.
Имеется MDI форма. В рамках этой формы я открываю вторую форму (Form1), (MDI Форма-родительское окно, form1-дочерная форма)
нужно сделать следуюшее: Родительская MDI форма должна остаться без изменения, в то время как, Form1 необходимо сделать ПОЛУпрозрачной.
ПС. пробовал Me.hWnd на ДочерняяФорма.hWnd -результат без изменений.

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Прозрачность дочерней формы

Сообщение MIT » 19.01.2009 (Пн) 16:10

Vyazikov писал(а):Имеется MDI форма
Насколько я знаю, с MDI такое не прокатит

Viper писал(а):2. Что значит в пределах родительского окна? Как это вообще можно запустить выполняемый файл в пределах окна. Что ты под этим подразумеваешь?
У меня только одна мысль появилась - хост окна.
добавлено: или присвоение окну чужого приложения статуса MDI-ребенка.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Vyazikov
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 14.01.2009 (Ср) 12:27

Re: Прозрачность дочерней формы

Сообщение Vyazikov » 19.01.2009 (Пн) 16:12

Viper писал(а):1. Где выполняется указанный код?
2. Что значит в пределах родительского окна? Как это вообще можно запустить выполняемый файл в пределах окна. Что ты под этим подразумеваешь?


Что касается вопроса 2.
делаю проект, компилирую ехе файл. Этот скомпилированный проект представляет собой форму программы. Я хочу запустить эту форму в окне другой, главной программы. Я просто не хочу в 1 главном проекте создавать 20 форм, мне будет удобнее создать 20 отдельных проектов, скомпилировать их, и запускать в 1 главном окне.

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Прозрачность дочерней формы

Сообщение MIT » 19.01.2009 (Пн) 16:14

Vyazikov писал(а):мне будет удобнее создать 20 отдельных проектов
И будет у тебя болтаться 21 запущенный процесс. Это не есть хорошо. Используй, хотя бы, ActiveX.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Vyazikov
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 14.01.2009 (Ср) 12:27

Re: Прозрачность дочерней формы

Сообщение Vyazikov » 19.01.2009 (Пн) 16:19

предыдущая тема к данной, никак не относится, совершенно другое дело, и другой вопрос. пожалуйста, не вникайте в нее.

И будет у тебя болтаться 21 запущенный процесс. Это не есть хорошо. Используй, хотя бы, ActiveX.
А вот тут ты прав! дело в том что в этих проектов будет 20 и в каждом наверное по 5 форм! Итого в проекте будет в районе 100 форм, недумаю что будет удобно, как лучше это дело умять?
Последний раз редактировалось Vyazikov 19.01.2009 (Пн) 16:24, всего редактировалось 1 раз.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Прозрачность дочерней формы

Сообщение Viper » 19.01.2009 (Пн) 16:23

Еще раз:
1. Где ты выполняешь код?
2. Пользуйся ActiveX.
Весь мир матрица, а мы в нем потоки байтов!

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Прозрачность дочерней формы

Сообщение MIT » 19.01.2009 (Пн) 16:24

Vyazikov писал(а):предыдущая тема к данной, никак не относится, совершенно другое дело, и другой вопрос. пожалуйста, не вникайте в нее.
Товарищ, извини, конечно, но ты о чем? Я тебе отвечаю по данному топику, не смешивая его ни с чем другим. Если чем-то не доволен - аргументируй, я не въехал :roll:

Vyazikov писал(а):как лучше это дело умять?
ActiveX
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Прозрачность дочерней формы

Сообщение Viper » 19.01.2009 (Пн) 16:29

MIT писал(а):
Vyazikov писал(а):предыдущая тема к данной, никак не относится, совершенно другое дело, и другой вопрос. пожалуйста, не вникайте в нее.
Товарищ, извини, конечно, но ты о чем? Я тебе отвечаю по данному топику, не смешивая его ни с чем другим. Если чем-то не доволен - аргументируй, я не въехал :roll:
Он имеет ввиду, что данная тобой ссылка на другой топик к его вопросу отношения не имеет.
Vyazikov, тебе надо отобразить "чужое" окно в своей проге? Да еще и как дочернее или MDI?
Весь мир матрица, а мы в нем потоки байтов!

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Прозрачность дочерней формы

Сообщение MIT » 19.01.2009 (Пн) 16:33

Viper писал(а):Он имеет ввиду, что данная тобой ссылка на другой топик к его вопросу отношения не имеет.
Ясно. Просто из его весьма сумбурного описания проблемы я не понял задачу и подумал о недавней теме. А то, что автор один и тот же - не обратил внимания.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Vyazikov
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 14.01.2009 (Ср) 12:27

Re: Прозрачность дочерней формы

Сообщение Vyazikov » 19.01.2009 (Пн) 16:40

Vyazikov, тебе надо отобразить "чужое" окно в своей проге? Да еще и как дочернее или MDI ?

Совершенно верно, прошу прощения, за невнятное вырашение мыслей. Мне надо отобразить "Чужое" окно в своей проге как дочернее
Viper писал(а):Еще раз:
1. Где ты выполняешь код? ?

Данный код, представленный мною выше, я пытаюсь выполнить в дочерней форме.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Прозрачность дочерней формы

Сообщение Viper » 19.01.2009 (Пн) 16:47

Насчет отображения чужого окна в качестве дочернего - надо использовать ActiveX, но есть несколько хитростей. Была такая тема некоторое время назад, там ответ дан полностью. Стоит поискать.
Весь мир матрица, а мы в нем потоки байтов!

Vyazikov
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 14.01.2009 (Ср) 12:27

Re: Прозрачность дочерней формы

Сообщение Vyazikov » 19.01.2009 (Пн) 17:23

Viper писал(а):Насчет отображения чужого окна в качестве дочернего - надо использовать ActiveX, но есть несколько хитростей. Была такая тема некоторое время назад, там ответ дан полностью. Стоит поискать.

Вот уж не думал что все так заморочено, но теперь знаю, спасибо постараюсь найти информацию!
Ну и как я понял с прозрачностью дела тоже обстоят туго?


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 98

    TopList