как сделать statusbar с помощью WinAPI

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
mdx
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 169
Зарегистрирован: 06.01.2006 (Пт) 18:13
Откуда: I'm from Russia!

как сделать statusbar с помощью WinAPI

Сообщение mdx » 09.12.2006 (Сб) 9:24

Делаю так:
Код: Выделить всё
statusBar = CreateWindow("msctls32_statusbar", "Status bar", WS_CHILDWINDOW, 100, 100, 200, 32, hWnd, 0, App.hInstance, ByVal 0)

в результате statusBar = 0.

Что я делаю неправильно?
This posting is provided "AS IS" with no warranties, and confers no rights.

Изображение

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

Сообщение Viper » 09.12.2006 (Сб) 10:01

Получи код ошибки через GetLastError, вернее через Err.LastDllError
Весь мир матрица, а мы в нем потоки байтов!

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

Сообщение tyomitch » 09.12.2006 (Сб) 14:59

С какой стати передаёшь App.hInstance?
Разве статусбар зарегистрирован твоим приложением?
Изображение

mdx
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 169
Зарегистрирован: 06.01.2006 (Пт) 18:13
Откуда: I'm from Russia!

Сообщение mdx » 10.12.2006 (Вс) 10:26

Уже разобрался. Я название класса неправильно написал: надо msctls_statusbar32. А hInstance передаю потому, что в примере в msdn так написано.
This posting is provided "AS IS" with no warranties, and confers no rights.

Изображение

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

Сообщение tyomitch » 10.12.2006 (Вс) 12:57

mdx писал(а):А hInstance передаю потому, что в примере в msdn так написано.

Странно, что там так написано. Когда я последний раз туда заглядывал, там велели для глобальных классов передавать NULL.
Во всех остальных случаях нужно передавать hInstance того модуля, которым зарегистрирован класс -- на случай, если классы с такими названиями зарегистрированы в нескольких модулях.
Например, если ты в своей проге зачем-нибудь зарегистрируешь свой собственный класс с названием msctls_statusbar32, то твой код сразу же перестанет работать. А правильный (передающий NULL) -- не перестанет.
См. тж. http://blogs.msdn.com/oldnewthing/archi ... 09205.aspx
Изображение


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

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

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

    TopList  
cron