Без потери фокуса.

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

Сообщение Крост » 21.08.2005 (Вс) 22:48

BV
SetParent - конечно проверял.....форма (вторая) внутри первой получается, т.е. как MDIшная...мне эт нафиг не надо...=)

Naked
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 27.10.2004 (Ср) 3:16
Откуда: Дальнегорск столица мира

Сообщение Naked » 26.08.2005 (Пт) 9:11

Крост ты решил свою проблему?
а то мне тоже такое стало нужно

мож добрые дяденьки помогут, а?

Крост
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 291
Зарегистрирован: 30.01.2005 (Вс) 6:06
Откуда: Питер

Сообщение Крост » 26.08.2005 (Пт) 13:03

Не, не решил...=(

Naked
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 27.10.2004 (Ср) 3:16
Откуда: Дальнегорск столица мира

Сообщение Naked » 29.08.2005 (Пн) 6:12

видать никто не в силах это сделать...

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 29.08.2005 (Пн) 14:19

Просто я не вижу в этом смысла.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 29.08.2005 (Пн) 14:27

все о чем ты так рассказываешь - это всего-навсего интерфейс вида MDI, и он есть в VB

Крост
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 291
Зарегистрирован: 30.01.2005 (Вс) 6:06
Откуда: Питер

Сообщение Крост » 29.08.2005 (Пн) 18:52

Konst_One
А если топ внимательно прочитать?

Вообще, если показать форму из DLL, то получаеться то, что мне нужно..

Naked
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 27.10.2004 (Ср) 3:16
Откуда: Дальнегорск столица мира

Сообщение Naked » 30.08.2005 (Вт) 1:03

Крост писал(а):Konst_One
А если топ внимательно прочитать?

Вообще, если показать форму из DLL, то получаеться то, что мне нужно..


дай поглазеть, мож что-нибудь переделаю

Крост
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 291
Зарегистрирован: 30.01.2005 (Вс) 6:06
Откуда: Питер

Сообщение Крост » 30.08.2005 (Вт) 2:07

Naked
Лови..=)

Зарегистрируй дллку, и запусти проект 2.
Вложения
DLL.rar
(6.9 Кб) Скачиваний: 48

Naked
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 27.10.2004 (Ср) 3:16
Откуда: Дальнегорск столица мира

Сообщение Naked » 30.08.2005 (Вт) 2:37

нда, при запуске в бэйсике работает, но не так как положено
создал exe, вообще перестало пахать

Крост
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 291
Зарегистрирован: 30.01.2005 (Вс) 6:06
Откуда: Питер

Сообщение Крост » 30.08.2005 (Вт) 2:42

Naked
Эм...в смысле?

Крост
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 291
Зарегистрирован: 30.01.2005 (Вс) 6:06
Откуда: Питер

Сообщение Крост » 30.08.2005 (Вт) 2:43

На пальцах:

Создай ActiveX Dll, добавь туда форму. В классе напиши процедуру (публичную), показывающую эту форму. Откомпилируй, создай обычный exe проект, подключи библиотеку, объяви класс, вызови процедуру....переключайся между формами и смотри на панель задач...=)

Naked
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 27.10.2004 (Ср) 3:16
Откуда: Дальнегорск столица мира

Сообщение Naked » 30.08.2005 (Вт) 2:55

нууу, я так и сделал

Крост
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 291
Зарегистрирован: 30.01.2005 (Вс) 6:06
Откуда: Питер

Сообщение Крост » 30.08.2005 (Вт) 3:01

Так что не работает?

Naked
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 27.10.2004 (Ср) 3:16
Откуда: Дальнегорск столица мира

Сообщение Naked » 30.08.2005 (Вт) 3:05

неа, не хочет

Крост
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 291
Зарегистрирован: 30.01.2005 (Вс) 6:06
Откуда: Питер

Сообщение Крост » 30.08.2005 (Вт) 3:10

Я не спрашиваю работает или нет, спрашиваю что именно не работает?

И.... Если мой проект не работает, создай свой, как выше описанно ("На пальцах")..=)

Naked
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 27.10.2004 (Ср) 3:16
Откуда: Дальнегорск столица мира

Сообщение Naked » 30.08.2005 (Вт) 3:29

Твой открывал, да и свой лепил (как выше описанно ("На пальцах"))
Толку нет. Создаю exe, внимательно смотрю на панель задач, и... при переходе фокуса на форму созданную из DLL вижу, что кнопка в баре отжимается, т.е теряет фокус

Крост
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 291
Зарегистрирован: 30.01.2005 (Вс) 6:06
Откуда: Питер

Сообщение Крост » 30.08.2005 (Вт) 3:32

Хм...у меня нет....странно...=(

Крост
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 291
Зарегистрирован: 30.01.2005 (Вс) 6:06
Откуда: Питер

Сообщение Крост » 30.08.2005 (Вт) 3:35

Хм..однако то, что когда запускаешь в ВБ, форма фокус не теряет...а при запуске exe теряет..=( жаль..

Naked
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 27.10.2004 (Ср) 3:16
Откуда: Дальнегорск столица мира

Сообщение Naked » 26.09.2005 (Пн) 2:58

Крост, у меня получилось, но надо еще доделать

Sub Main()

'поиск APPWINDOW
hAppWindow = FindWindow("ThunderRT6Main", vbNullString)
GWL = GetWindowLong(hAppWindow, GWL_STYLE)
Call SetWindowLong(hAppWindow, GWL_STYLE, GWL Or WS_MINIMIZEBOX Or WS_MAXIMIZEBOX)

GWLEX = GetWindowLong(hAppWindow, GWL_EXSTYLE)
Call SetWindowLong(hAppWindow, GWL_EXSTYLE, WS_EX_APPWINDOW)

'MDI
GWL = GetWindowLong(MDIForm.hwnd, GWL_STYLE)
Call SetWindowLong(MDIForm.hwnd, GWL_STYLE, GWL Or WS_POPUP)

GWLEX = GetWindowLong(MDIForm.hwnd, GWL_EXSTYLE)
Call SetWindowLong(MDIForm.hwnd, GWL_EXSTYLE, GWLEX And Not WS_EX_APPWINDOW)

'убери у всех форм WS_EX_APPWINDOW, если есть
GWLEX = GetWindowLong(ашвнд формы, GWL_EXSTYLE)
Call SetWindowLong(MDIHwnd, GWL_EXSTYLE, GWLEX And Not WS_EX_APPWINDOW)

Call ShowWindow(MDIForm.hwnd)
Form1.Show vbModeless, MDIClient
Form2.Show vbModeless, MDIClient
Form3.Show vbModeless, MDIClient
Form4.Show vbModeless, MDIClient

End Sub

ничего сложного нет, надеюсь разберешься :)
работает только в exe

Пред.

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

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

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

    TopList