Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Начал изучение MFC, или дремучий лес - не то слово 
:(
    Опции темы
Cardholder
  Дата 3.4.2004, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 13.3.2004

Репутация: нет
Всего: нет



Изучив C++, приступил к изучению библиотеки MFC. Столкнулся с тем, что ни один учебник, который Я бы не открыл, не смог толком объяснить мне основы MFC.
Вот, к примеру, помогите создать простое "Окно сообщений". С чего начинать? (Я работаю под VC.Net).
У меня есть для этого функция:
int AfxMessageBox(LPCTSTR lpszText, UINT nType=MB_OK, UINT nIDHelp=0);
Далее её вызов: AfxMessageBox("Используемые константы: MB_ABORTRETRYIGNORE|MB_ICONHAND|MB_DEFBUTTON2", MB_ABORTRETRYIGNORE|MB_ICONHAND|MB_DEFBUTTON2);

Теперь, какие должны быть включены заголовочные файлы?
Будут ли они из библиотеки, или же мне самому создавать их?
В общем, пожалуйста, помогите кто-нить с созданием окна сообщения, описывая поэтапно сей процесс.

Если есть добрые люди с ссылками на хорошие учебники по MFC, где все начинается с нуля, то поделитесь с заблудшим программером.
Спасибо, Друзья!
PM MAIL   Вверх
mr.DUDA
Дата 3.4.2004, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 25
Всего: 232



AfxMessageBox ничем не отличается от функции MessageBox из WinAPI, разве что только наличием параметров по умолчанию, и отсутствием возможности задать заголовок для окна сообщения (т.е. window caption).

Первый аргумент функции AfxMessageBox - строка текста (lpszText), которая будет выведена в окне сообщения. Второй аргумент (nType) - это комбинация флагов (или проще - стилей и настроек), применяемая для создания окна сообщения (окно и то же сообщений может быть создано с различными настройками). Третий параметр (nIDHelp) - это необязательный идентификатор контекстной справки, вызываемой (если он задан) по нажатию кнопки клавиши F1.

Настройки/стили окна комбинируются между собой оператором двоичного сложения "|", и позволяют:
1) настроить количество кнопок под текстом сообщения и их текст ("Ок", "Да", "Нет", "Отмена", "Повтор", "Прервать", "Игнорировать"), можно использовать одно из следующих значений (смысл каждого понятен из названия): MB_OK, MB_OKCANCEL, MB_YESNO, MB_YESNOCANCEL, MB_RETRYCANCEL и другие
2) настроить тип иконки (вопросительный/восклицательный знак, знак "?" и другие), отображаемой слева от текста сообщения: MB_ICONEXCLAMATION, MB_ICONINFORMATION, MB_ICONQUESTION, MB_ICONSTOP. В зависимости от этой настройки, будет также выдаваться один из типов стандартных звуков Windows при отображении окна
3) выбрать одну из кнопок текущей при отображении окна: MB_DEFBUTTON1...MB_DEFBUTTON4
4) настроить, как будет вести себя окно по отношению к остальным окнам приложения - родительскому и остальным (для AfxMessageBox родительским окном является то окно, в котором произошёл вызов этой функции): MB_APPLMODAL, MB_SYSTEMMODAL, MB_TASKMODAL

Для "повседневного" использования обычно достаточно флагов MB_OK/MB_OKCANCEL или MB_YESNO/MB_YESNOCANCEL и указания типа иконки.

Пример вызова AfxMessageBox:
Код
AfxMessageBox("Продолжить ?", MB_YESNO|MB_ICONSTOP);


Кроме того, чтобы обработать результат, остающийся после закрытия окна сообщения (в приведённом примере пользователь мог нажать как кнопку "Да", так и кнопку "Нет" - надо же как-то это обработать!), функция AfxMessageBox и её аналоги (MessageBox из WinAPI и из класса CWnd) возвращают int, равный одному из следующий значений: IDOK, IDYES, IDNO, IDCANCEL, IDABORT, IDRETRY, IDIGNORE.

Теперь о заголовочных файлах. В случае, если проект был создан средствами AppWizard и поддерживает MFC (это может быть проект на основе диалогового окна, SDI/MDI окна или вообще консольное приложение с поддержкой MFC), то никаких дополнительных заголовочных файлов не нужно для использования AfxMessageBox. В противном случае (когда проект представляет собой "чистое" приложение WinAPI), можно с таким же успехом пользоваться "обычной" функцией MessageBox.


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0573 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.