MessageBoxIndirect

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

MessageBoxIndirect

Сообщение Santa » 21.10.2006 (Сб) 23:40

Здрасти!
Как с помошью функции MessageBoxIndirect в MsgBox засунуть свою иконку???
SIVIS PACEM PARA BELLUM

|( () ( T |/| |(
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 211
Зарегистрирован: 01.10.2005 (Сб) 15:49

Сообщение |( () ( T |/| |( » 22.10.2006 (Вс) 0:14

Private Type MSGBOXPARAMS
cbSize As Long
hwndOwner As Long
hInstance As Long
lpszText As String
lpszCaption As String
dwStyle As Long
lpszIcon As String
dwContextHelpId As Long
lpfnMsgBoxCallback As Long
dwLanguageId As Long
End Type


Помойму через MessageBoxIndirect нельзя.

Santa
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 101
Зарегистрирован: 07.05.2004 (Пт) 1:34
Откуда: KZ

Сообщение Santa » 22.10.2006 (Вс) 11:30

Както можно, иначе зачем нужен lpszIcon, только у меня он Long, а не String. :?
SIVIS PACEM PARA BELLUM

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 22.10.2006 (Вс) 11:43

lpszIcon as long - id ресурса с иконкой, кажеться
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 22.10.2006 (Вс) 11:50

В dwStyle включаем флаг MB_USERICON.
В lpszIcon передаём ид. ресурса значка.

[Когда писалось это сообщение, поста ANDLL ещё не было]
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

|( () ( T |/| |(
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 211
Зарегистрирован: 01.10.2005 (Сб) 15:49

Сообщение |( () ( T |/| |( » 22.10.2006 (Вс) 14:07

Хакер, чёта не пашет, стандартные иконки с 100 - 105 рисует, а другие нет.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 22.10.2006 (Вс) 14:53

Компилируй
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Santa
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 101
Зарегистрирован: 07.05.2004 (Пт) 1:34
Откуда: KZ

Сообщение Santa » 22.10.2006 (Вс) 18:26

Хакер Что есть ид. ресурса значка и где его взять?

|( () ( T |/| |( Как правильно прописать стандартные иконки с 100 - 105, а то у меня не получается.

Или как из Picture или Image или самой формы???
SIVIS PACEM PARA BELLUM

Santa
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 101
Зарегистрирован: 07.05.2004 (Пт) 1:34
Откуда: KZ

Сообщение Santa » 26.10.2006 (Чт) 21:54

Не ужели нечего ответить?! Или очень сильно сложные вопросы??? :evil:
SIVIS PACEM PARA BELLUM

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

Сообщение alibek » 26.10.2006 (Чт) 22:46

1. Тебе ответили, перечитай.
2. Пользуйся поиском.
3. ЕМНИП в стандартный MsgBox вставить свои значки нельзя, рисуй свою форму. Это несложно.
Lasciate ogni speranza, voi ch'entrate.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 26.10.2006 (Чт) 23:08

keks-n бы перехватывал LoadIcon, DrawIcon :lol:

А вообще, если возникают такие вопросы
Хакер Что есть ид. ресурса значка и где его взять?


То, навреное, пока рано заниматься тамими делами. Так что делай свою форму.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 28.10.2006 (Сб) 18:00

keks-n бы перехватывал LoadIcon, DrawIcon

Мне вообще пора звание давать - "Перехватчик" :)
Кстати, тут, по ходу дела надо перехватывать LoadImageW(всё равно из LoadIcon вызывается) и колдовать с параметрами: где надо поставить LR_LOADFROMFILE, обнулить hInstance, проставить путь и т. д.
Изображение

yaklit
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 09.09.2006 (Сб) 19:38

Сообщение yaklit » 28.10.2006 (Сб) 18:29

какую бы я тему не прочел с участием многоуважаемого keks n так он везде чото перехватывает, ставит хуки и т д. :)
А зачем ВООБЩЕ начинать морочится с MessageBox если можно СРАЗУ нарисовать свою форму. Ну АПИшку создать в крайнем случеае (stdcall конечно)

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

Сообщение GSerg » 28.10.2006 (Сб) 18:37

yaklit писал(а):Ну АПИшку создать в крайнем случеае (stdcall конечно)

Пояснишь эту мысль?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

yaklit
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 09.09.2006 (Сб) 19:38

Сообщение yaklit » 28.10.2006 (Сб) 19:10

Что пояснить? как создать Стандартную (Stdcall) DLL на VB?

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 28.10.2006 (Сб) 19:57

Они у него и так stdcall :)
Последний раз редактировалось keks-n 28.10.2006 (Сб) 20:03, всего редактировалось 1 раз.
Изображение

yaklit
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 09.09.2006 (Сб) 19:38

Сообщение yaklit » 28.10.2006 (Сб) 20:02

мда? тогда напиши длл на VB и попытайся вызвать функции из нее с помощю Declare Function. 8)

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 28.10.2006 (Сб) 20:05

ЛОЛ. Конвенция вызова на это никоим образом не влияет. Другое дело, что экспортируются лишь 4 служебные функции.
Изображение

yaklit
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 09.09.2006 (Сб) 19:38

Сообщение yaklit » 28.10.2006 (Сб) 20:08

ну и я про тоже. твои функции не экспортируются они остаются "внутри"

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 28.10.2006 (Сб) 20:13

Это от stdcall не зависит. С таким же успехом они бы не экспортировались будь они cdecl.
Изображение

yaklit
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 09.09.2006 (Сб) 19:38

Сообщение yaklit » 28.10.2006 (Сб) 20:17

keks n ладно значит просто зовется не stdcall. смысл слов моих наверное до всех долетел.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 28.10.2006 (Сб) 20:20

keks-n
Вы разговариваете на разных яхыках. Сие вече, видимо под "stdcall-dll" подразумевают обычную dll которая экспортирует объявленные программистом фукнции.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 28.10.2006 (Сб) 20:24

Смысл то долетел. Зовётся это Native function export. Кстати можно сделать на VB 2-мя путями. 1-ый - найти тему GSerg'а и слить хирый проект, который компилится в exe, а потом сам из себя делает DLL.

Второй - вспомнить, как обычно составляется список экспортируемых функций в других языках, почесать в затылке, накатать свой link.exe(можно написать плагин, для VB, перехватывающий CreateProcess :lol: ) и добавить в командную строку нужный DEF. После чего можно попытаться придумать метод, как запустить виртуальную машину VB чтобы можно было с объектами работать. Во втором случае теряется контроль над DLLMain
Изображение

yaklit
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 09.09.2006 (Сб) 19:38

Сообщение yaklit » 28.10.2006 (Сб) 20:29

и третий найти другую тему в которой уже готов плагин для VB, Linker и все прочее которым удобно пользоваться. Только в тот подьменьшик коммандной строки нужно добавить строчку /FIXED:NO чтоб как в теме GSerga появилась секция .reloc .

yaklit
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 09.09.2006 (Сб) 19:38

Сообщение yaklit » 28.10.2006 (Сб) 20:30

а вообще мне и вам пора прекращать оффтопить

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

Сообщение tyomitch » 28.10.2006 (Сб) 22:19

alibek писал(а):3. ЕМНИП в стандартный MsgBox вставить свои значки нельзя, рисуй свою форму. Это несложно.

Дык ить, я же писал пример?
http://bbs.vbstreets.ru/viewtopic.php?t=28284

И да, там keks-n тоже предлагал перехватить всё, что не приколочено гвоздями :lol:
Изображение


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

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

Сейчас этот форум просматривают: Majestic-12 [Bot], Yandex-бот и гости: 124

    TopList