Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Главное меню приложения. Контроль видимости, Нужно менять состояние главного меню 
:(
    Опции темы
gorby
Дата 2.4.2008, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 27.3.2008
Где: Киев

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



У меня многооконное  приложение на базе класса CWinApp, и  CMDIFrameWnd.
Мне нужно скрывать и делать видимым главное меню.

Я пытался использовать функцию.
pMainFrame->SetMenuBarState(AFX_MBS_HIDDEN);
Меню исчезает. 

Но если его нужно снова включить, то не получается сделать меню видимым,
использую вызов pMainFrame->SetMenuBarState(AFX_MBS_VISIBLE);


Кроме того, после открытия файла, меню снова появляется.
PM MAIL WWW Skype   Вверх
Earnest
Дата 2.4.2008, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



A что это за функция такая? В 2003 студии такой нет... Если она появилась позже, приведи ее код (или сам посмотри)

Добавлено через 49 секунд
Как предположение, попробуй после VISIBLE еще сделать SetWindowPos с флагом SWP_FRAMECHANGED


--------------------
...
PM   Вверх
gorby
Дата 4.4.2008, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 27.3.2008
Где: Киев

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



Код

BOOL CFrameWnd::SetMenuBarState(DWORD dwState)
{
    ENSURE_ARG(dwState == AFX_MBS_VISIBLE ||
                dwState == AFX_MBS_HIDDEN);

    if (m_dwMenuBarState == dwState)
    {
        return FALSE;
    }

    if (dwState == AFX_MBS_VISIBLE)
    {
        OnShowMenuBar();
        ::SetMenu(m_hWnd, m_hMenu);
    }
    else
    {
        m_hMenu = ::GetMenu(m_hWnd);
        OnHideMenuBar();
        ::SetMenu(m_hWnd, NULL);
    }

    m_dwMenuBarState = dwState;
    return TRUE;
}

Я использую VS2008

Цитата

Как предположение, попробуй после VISIBLE еще сделать SetWindowPos с флагом SWP_FRAMECHANGED 

Earnest, спасибо за совет попробую.
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




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


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

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