Baderd94 Ответов: 1

Как я могу изменить свой диалог обратно на его исходное имя


void CVCDlg::OnStriction() //open Striction box
{

HANDLE hMutexOneInstance = ::CreateMutex( NULL, FALSE, _T("IDD_STRICTION"));

bAlreadyRunning = ( ::GetLastError() == ERROR_ALREADY_EXISTS ||
                    ::GetLastError() == ERROR_ACCESS_DENIED);

if(!bAlreadyRunning)
{
CDialog *BadFileD = new CDialog(IDD_STRICTION, this);
BadFileD->DoModal();
OnButton1();
CMenu* pMenu = GetMenu();
pMenu->ModifyMenu( ID_STRICTION, 0, ID_STRICTION, "Expansion" ); 
}
ReleaseMutex(hMutexOneInstance);
CloseHandle(hMutexOneInstance);
}


Что я уже пробовал:

У меня есть графический интерфейс, в котором есть меню. код, приведенный выше, делает окно графического интерфейса меньше. как только я нажимаю на ограничение (в меню), оно делает эту работу, оно делает окно графического интерфейса меньше. Внутри оператора If, который я использую
GetMenu();
чтобы изменить текст в меню от строгости к расширению, нужно сделать обратный порядок, чтобы добраться до его исходного размера.

проблема, с которой я сталкиваюсь в данный момент, заключается в том, что когда я нажимаю на меню twich, текст меню не меняется обратно на Striction. хотя графический интерфейс продолжает становиться все больше и меньше, как я хочу.

1 Ответов

Рейтинг:
6

User 7429338

Похоже, что функция OnButton1 () - это то место, где вы выполняете изменение размера. Вы можете либо переместить изменить меню туда, либо вернуть переменную состояния, чтобы указать, является ли окно большим или маленьким.

Например:

CMenu* pMenu = GetMenu();
int isBig = OnButton1();
if(isBig)
{
    pMenu->ModifyMenu( ID_STRICTION, 0, ID_STRICTION, "Striction" );
}
else
{
    pMenu->ModifyMenu( ID_STRICTION, 0, ID_STRICTION, "Expansion" );
}


Baderd94

Таддеус Джонс, я переместил изменение меню на OnButton1 (), и это сработало. Огромное спасибо!

[no name]

Приятно, в любое время :)