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

Уроки по Visual C++ (MFC, платформа .NET)


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

Visual C++. FAQ. Уроки по программированию с сайта http://progs.biz

Рассылка №47

Visual C++. FAQ. Вопрос 17. Почему мое немодальное диалоговое окно не появляется?
Visual C++. FAQ. Вопрос 18. Почему в Visual C++ пропадают подсказки?
Visual C++. FAQ. Вопрос 19. Как сделать, чтобы static обрабатывал сообщения Windows?.
Visual C++. FAQ. Вопрос 20. Как создать полноэкранное окно?
Visual C++. FAQ. Вопрос 21. Как создать окно без заголовка?

Полные версии уроков (с картинками) можно найти по адресам
Вопрос 17. Почему мое немодальное диалоговое окно не появляется?
Вопрос 18. Почему в Visual C++ пропадают подсказки?
Вопрос 19. Как сделать, чтобы static обрабатывал сообщения Windows?.
Вопрос 20. Как создать полноэкранное окно?
Вопрос 21. Как создать окно без заголовка?

FAQ по Visual C++. Вопрос 17. Почему мое немодальное диалоговое окно не появляется?

Скорей всего в конструкторе диалога в его свойствах вы не задали флажок Visible. В результате диалог хоть и создается, но остается невидимым. Установите этот флажок.

После этого диалог должен появляться.

Наверх

FAQ по Visual C++. Вопрос 18. Почему в Visual C++ пропадают подсказки?

Это глюки VC++. Для их ликвидации можно использовать Visual Assist. Это, правда, не бесплатно, но есть 30-и дневная пробная версия.

Наверх

FAQ по Visual C++. Вопрос 19. Как сделать, чтобы static обрабатывал сообщения Windows?

Задача такая - мы хотим, что бы static (например, label) мог обрабатывать сообщения Windows. Для этого мы должны сделать две вещи - во-первых, мы должны изменить идентификатор нашего static'а на что-нибудь отличное от IDC_STATIC (например, IDC_STATIC1). И во-вторых, мы должны отметить на вкладке Styles флажок Notify.

После этого наш static сможет принимать сообщения Windows. Например, если мы щелкнем на нем (на этапе разработки), то нам будет предложенно задать имя для обработчика сообщения WM_LBUTTONDOWN.

Наверх

FAQ по Visual C++. Вопрос 20. Как создать полноэкранное окно?

Распахнуть окно на полный экран можно так:

    AfxGetMainWnd()->ShowWindow(SW_SHOWMAXIMIZED);

Гораздо интереснее сделать это по нажатии на некоторую клавишу. Например, можно это сделать принажатии на ESC. Для этого сначала щелкаем на классе главного диалогового окна (вкладка ClassView) правой кнопкой мыши и выбираем Add Virtual Function, в появившемся окне New Virtual Override for class ... ищем PreTranslateMessage и двойным щелчком перекидываем ее в правый listbox. В появившейся заготовке пишем следующий код:

BOOL CMyDlg::PreTranslateMessage(MSG* pMsg)
{
    if(pMsg->message == WM_KEYDOWN) //Если нажата клавиша...
    {
        if(pMsg->wParam == VK_ESCAPE) //.и эта клавиша - ESC
        {
            //то распахиваем окно на весь экран
            AfxGetMainWnd()->ShowWindow(SW_SHOWMAXIMIZED);
            return TRUE;
        }
    }
    return CDialog::PreTranslateMessage(pMsg);
}
Наверх

FAQ по Visual C++. Вопрос 21. Как создать окно без заголовка?

Для этого надо убрать из стилей такого окна стиль WS_CAPTION. Сделать это можно разными способами. Самый быстрый - это использование метода ModifyStyle класса CWnd. Этот метод можно использовать как для исключения, так и для вклчения разных стилей. Вот пример, показывающий, как убрать заголовок окна по нажаию на некоторую кнопку:

void CTestDlg::OnButton1()
{
    // TODO: Add your control notification handler code here
    ModifyStyle(WS_CAPTION, 0);
}

У метода ModifyStyle два обязательных параметра. Первый задает то, что должно быть убрано из стилей окна, второй - что должно быть добавлено. Если убирать или добавлять ничего не надо, то в соответствующий параметр надо записать ноль.

Наверх

Рассылки сайта progs.biz:

Рассылки Subscribe.Ru
Обзор книг по программированию

Обзор новых книг по программированию. Включает книги как по традиционному программированию (Visual C++, Delphi, Visual Basic, C#, Java,...), так и по WEB-программированию (JavaScript, PHP, ASP, ASP.NET, Perl,...). Кроме того, предполагается обзор книг по компьютерным сетям, безопасности, сертификации и др.


Copyright Алексеев Игорь, 2002

Copyright cайт progs.biz, 2002



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное