Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Win API


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / WinAPI

Выпуск № 176
от 07.12.2005, 11:30

Администратор:Калашников О.А.
В рассылке:Подписчиков: 261, Экспертов: 25
В номере:Вопросов: 2, Ответов: 4


Вопрос № 30605: Здравствуйте! Хотел бы узнать о возможности отслежевания такого события в Windows 98 как установка носителя usb-flash, т.е. появление в системе нового диска. А также интересует вопрос - как узнать подключен ли диск к системе (т.е. есть диск E: в...
Вопрос № 30610: Как на winapi реализовать простую кнопку? В книгах Румянцева и Петцольда про это написано немного криво, то есть описан не совсем, так как бы мне хотелось. В итоге, посмотрел примеры, попробовал создать простую кнопку. Компилятор не ругается, но резу...

Вопрос № 30.605
Здравствуйте! Хотел бы узнать о возможности отслежевания такого события в Windows 98 как установка носителя usb-flash, т.е. появление в системе нового диска.
А также интересует вопрос - как узнать подключен ли диск к системе (т.е. есть диск E: в системе или нет). Надеюсь на ответы! Спасибо.
Отправлен: 01.12.2005, 22:18
Вопрос задал: NewBot (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Raptor1
Здравствуйте, NewBot!
Здравствуйте, NewBot!
>> как узнать подключен ли диск к системе
GetLogicalDrives, GetLogicalDriveStrings, GetDriveType
Ответ отправил: Raptor1 (статус: Студент)
Отправлен: 02.12.2005, 23:04


Вопрос № 30.610
Как на winapi реализовать простую кнопку? В книгах Румянцева и Петцольда про это написано немного криво, то есть описан не совсем, так как бы мне хотелось. В итоге, посмотрел примеры, попробовал создать простую кнопку. Компилятор не ругается, но результат нулевой. Кнопки я не вижу.
Код обычного пустого окна, думаю его приводить не стоит, а код для создания кнопки привел в приложении.

Приложение:

Отправлен: 01.12.2005, 23:19
Вопрос задал: RedDevil (статус: 2-ой класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: azat
Здравствуйте, RedDevil!
А зачем Вам это?
(HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE)
или
((LPCREATESTRUCT) lParam)->hInstance
Поставьте вместо него NULL
Ответ отправил: azat (статус: 5-ый класс)
Отправлен: 02.12.2005, 00:15
Оценка за ответ: 5
Комментарий оценки:
Все, теперь работает.

Отвечает: Jadd
Здравствуйте, RedDevil!
В приложении пример, который создает кнобу. Замечу лишь, что запись (HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE) необходима в версиях Windows 95/98/Me для передачи хэндла модуля, с которым связано окно, в Windows NT/2000/XP - здесь нужно NULL ставить, т.к. этот параметр игнорируется.

Удачи.

Приложение:

---------
Если в сердце дверь закрыта, нужно в печень постучаться

Ответ отправил: Jadd (статус: Специалист)
Отправлен: 02.12.2005, 08:51
Оценка за ответ: 5
Комментарий оценки:
Спасибо за разьяснения.

Отвечает: Raptor1
Здравствуйте, RedDevil!
У меня этот код работает, при запуске из OnInitDialog (WM_INITDIALOG)
CreateWindow("BUTTON","My button", BS_DEFPUSHBUTTON | WS_CHILD | WS_VISIBLE, 5,5,100,30,m_hWnd, NULL, (HINSTANCE) GetWindowLong(m_hWnd, GWL_HINSTANCE), NULL);
Возможно дело в том, что когда ты пытаешься создать кнопку еще не создано главное окно, т.е. m_hWnd не инициализирован.
Ответ отправил: Raptor1 (статус: Студент)
Отправлен: 02.12.2005, 23:03
Оценка за ответ: 5
Комментарий оценки:
Это наверное потому, что ты используешь ОС 9х, вот что, написал мне Jadd:
"запись (HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE) необходима в версиях Windows 95/98/Me"
А как раз в NT этот параметр должен быть NULL.


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Яндекс Rambler's Top100 hotlog_js="1.0"; hotlog_r=""+Math.random()+"&s=314124&im=101&r="+escape(document.referrer)+"&pg="+ escape(window.location.href); document.cookie="hotlog=1; path=/"; hotlog_r+="&c="+(document.cookie?"Y":"N"); hotlog_js="1.1";hotlog_r+="&j="+(navigator.javaEnabled()?"Y":"N") hotlog_js="1.2"; hotlog_r+="&wh="+screen.width+'x'+screen.height+"&px="+ (((navigator.appName.substring(0,3)=="Mic"))? screen.colorDepth:screen.pixelDepth) hotlog_js="1.3" hotlog_r+="&js="+hotlog_js; document.write("HotLog")

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.winapifaq
Архив рассылки
Отписаться
Вспомнить пароль

В избранное