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

RusFAQ.ru: Программирование на C / C++


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

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

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

Выпуск № 285
от 30.12.2005, 01:33

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


Вопрос № 32093: Здравствуйте уважаемые эксперты! Очень прошу вас разъяснить мне принцип действия функций CreateWindow и DialogBox. Мне непонятно как в visual c++ 7.0(пытаюсь учить писать без mfc) после создания окна функцией CreateWindow "привязать" к ...
Вопрос № 32119: Здравствуйте! К вопросу №32093. Меня интересует как после создания окна функцией CreateWindow, создать в этом окне диалог. с уважением....
Вопрос № 32125: Доброе время суток !! Подскажите, как красивее узнать список имеющихся Com портов в системе, дабы дать пользователю список, из чего выбирать....

Вопрос № 32.093
Здравствуйте уважаемые эксперты!
Очень прошу вас разъяснить мне принцип действия функций CreateWindow и DialogBox. Мне непонятно как в visual c++ 7.0(пытаюсь учить писать без mfc) после создания окна функцией CreateWindow "привязать" к созданному окну ресурс формы. Или ее надо заменять функцией DialogBox?
С уважением Влад.
Отправлен: 24.12.2005, 05:19
Вопрос задал: Ивченков Владислав Владимирович (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Jadd
Здравствуйте, Ивченков Владислав Владимирович!
DialogBox в параметре lpTemplate передается идентификатор ресурса при помощи макроса MAKEINTRESOURCE. Сам DialogBox - макрос, который использует CreateWindowEx. Сам CreateWindowEx не юзает ресурсов (кроме меню и тп). Ему можно только передать идентификатор. А все остальное можно подгрузить. А чем MFC плох?

---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Специалист)
Отправлен: 24.12.2005, 11:26
Оценка за ответ: 5
Комментарий оценки:
Спасибо
MFC ничем не плох просто изучаю.

Отвечает: estiGi
Здравствуйте, Ивченков Владислав Владимирович!
Функции служат для разных целей. CreateWindow создает окно - любой контрол или главное окно приложения. Если ты создаешь Win32App приложение в студии, то визард автоматически генерирует тебе код создания главного окна приложения, регистрацию окна своего класса в системе и обработку его сообщений.
Диалог это тоже окно, но заранее определенного класса. DialogBox создает и показывает модальный диалог, CreateDialog создает немодальный диалог, чтобы его показать надо вызвать ShowWindow. Можно создать диалог без помощи редактора ресурсов, ручками, кажется функция CreateDialogIndirect.
В том же коде Win32App приложения, который генерит студия, есть диалог About, вызывается через DialogBox. Если хорошо покопать этот код, по шагам, то можно разобраться, как эта вся система действует. Заметь, что обработчики сообщений для окна и для диалога немного отличаются.
И не совсем понятно, что значит "привязать" диалог к окну. Если тебе в программе не нужно окно, а только один диалог, то можно так - удалить ваще все, что нагенерировал визард. А в функции _tWinMain просто вызывай DialogBox, не забудь создать обработчик для него.
Если окно все равно не нужно, но один диалог не является целевым и главным - например, можно сделать чтобы в трей падала иконка, и по кликам по ней вызывались разные нужные тебе диалоги и процессы, то делай так:
- RegisterClassEx (регистрируем класс главного окна)
- CreateWindow (создаем это окно)
- Shell_NotifyIcon (создаем иконку в трее)
- цикл GetMessage (обработка сообщений окна)
Не надо показывать это окно (ShowWindow, UpdateWindow), оно просто есть, принимает и обрабатывает сообщения, но его не видно. А в обработчике главного окна принимаем сообщения от кликов по иконке в трее, и можем показывать диалоги.
Ответ отправил: estiGi (статус: 9-ый класс)
Отправлен: 24.12.2005, 12:32
Оценка за ответ: 5
Комментарий оценки:
спасибо


Вопрос № 32.119
Здравствуйте!
К вопросу №32093.
Меня интересует как после создания окна функцией CreateWindow, создать в этом окне диалог.
с уважением.
Отправлен: 24.12.2005, 18:26
Вопрос задал: Ивченков Владислав Владимирович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Zitz
Здравствуйте, Ивченков Владислав Владимирович!

Я ничего не понимаю! Диалог то ведь тоже окно, или нет? Или это о диалоге между собеседниками?
Все они одинакого создаются... Может имеется ввиду первое окно папой сделать?
Так там есть параметры
HWND hWndParent = хендлу первого окна (родителя)
DWORD dwstyle="WS_CHILDWINDOW"
Ответ отправил: Zitz (статус: 3-ий класс)
Отправлен: 24.12.2005, 22:04


Вопрос № 32.125
Доброе время суток !!
Подскажите, как красивее узнать список имеющихся Com портов в системе, дабы дать пользователю список, из чего выбирать.
Отправлен: 24.12.2005, 19:37
Вопрос задал: Safronov Alex (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Raptor1
Здравствуйте, Safronov Alex!
HKEY_LOCAL_MASHINEhardwaredevicemapserialcomm
Ответ отправил: Raptor1 (статус: Студент)
Отправлен: 24.12.2005, 23:02
Оценка за ответ: 5
Комментарий оценки:
Просто и со вкусом.... СПАСИБО


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

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

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

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

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


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


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Яндекс Rambler's Top100

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

В избранное