Я сделал приложение MFC, и теперь я хочу отключить кнопку закрытия окна во время операций копирования. Я сделал это успешно с этим кодом:
BOOL bEnable = FALSE; // To disable
UINT menuf = bEnable ? (MF_BYCOMMAND) : (MF_BYCOMMAND | MF_GRAYED | MF_DISABLED);
CMenu* pSM = GetSystemMenu( , FALSE );
if ( pSM )
{
pSM->EnableMenuItem( SC_CLOSE, menuf );
}
Но теперь, в конце моей программы в моем потоке (UINT CopyThread (LPVOID pParam)) я хочу включить его, но я не могу. Ранее я передавал в свой поток m_hWnd, и теперь я не хочу передавать это функции GetSystemMenu, но получаю ошибку компилятора: ошибка C2440: «инициализация»: невозможно преобразовать из «HMENU» в «CMenu *». Я уверен, что это простой вопрос, но я новичок, поэтому, пожалуйста, помогите, но я не могу понять, чем я занимаюсь!
Заранее спасибо!
Kampi
Обновление:
Я попробовал этот способ, который почти работает. Закрыть «X» снова будет черным, но если я нажму на него, моей программы не будет. Я делаю что-то не так, или это потому, что что-то еще?
BOOL bEnable = TRUE; // To enable
UINT menuf = bEnable ? (MF_BYCOMMAND) : (MF_BYCOMMAND | MF_GRAYED | MF_DISABLED);
HMENU pSM = ::GetSystemMenu( Test->hWnd, FALSE );
if ( pSM )
{
::EnableMenuItem(pSM, SC_CLOSE, menuf );
}