сообщение на месте в MFC? - PullRequest
       33

сообщение на месте в MFC?

0 голосов
/ 15 февраля 2011

Привет Если кто-нибудь знает, как использовать предупреждающее сообщение на месте в MFC, не могли бы вы поделиться информацией. Есть ли способ использовать его или есть какой-либо элемент управления, который мы можем использовать непосредственно в MFC.

Предупреждающее сообщение на месте: предупреждающее сообщение с соответствующим значком вместе с предупреждающим сообщением будет отображаться в том же диалоговом окне.

Я нашел некоторую информацию о локальном сообщении в msdn

Сообщение InPlace в глоссарии msdn

Различные сообщения

Пожалуйста, поделитесь информацией.

Привет

Haranadh

Ответы [ 2 ]

4 голосов
/ 16 февраля 2011

Из вашего комментария видно, что вы ссылаетесь на это как на месте сообщение:

По иронии судьбы, конечно, это помечено как неверный пример на странице MSDN, на которую вы ссылаетесь.Особенно рекомендуется предоставить более конкретные рекомендации, такие как защита проектора паролем, чтобы презентация не была видна непреднамеренным зрителям.Если оставить это в стороне, однако ...

Это довольно легко реализовать в MFC.Это делается просто с помощью двух STATIC элементов управления , один слева отображает значок (в данном случае предупреждающий треугольник), а более длинный справа - статический текст (само предупреждение).,Если вы используете редактор диалогов для создания своего окна, достаточно просто перетащить два элемента управления в диалоговое окно и расположить их соответствующим образом.Нет ни одного элемента управления, который инкапсулирует эту функциональность, но глупо ожидать, что это произойдет, учитывая, что сделать это с двумя отдельными статическими элементами управления уже так просто.

Загружать встроенные значки, такие какпредупреждающий треугольник, показанный выше, вы можете использовать функцию LoadStandardIcon и указать IDI_WARNING в качестве имени значка.Полный список значений доступен здесь .Очевидно, что вы можете загрузить любую иконку по вашему выбору;просто добавьте его к ресурсам вашего проекта.

Поскольку вы, вероятно, захотите отображать предупреждение только тогда, когда оно применимо , вам необходимо программно скрыть и показать два элемента управления в зависимости от предпринятых действий.пользователем в вашем диалоге.Стандартная функция-член ShowWindow делает это тривиальной задачей.Вызовите его для двух статических элементов управления, передав SW_SHOW в качестве аргумента, если вы хотите, чтобы предупреждающее сообщение было видимым.В противном случае вы можете указать SW_HIDE, чтобы скрыть элемент управления.

0 голосов
/ 16 декабря 2011

Как альтернатива тому, что вы пытаетесь сделать; Вы можете разместить свое сообщение в диалоге:

int nResult = AfxMessageBox("Save changes to Current Job?", MB_YESNO);

    if (nResult == IDYES)
    {
        OnFileSave();
    } 
...