Как я могу сделать кнопку команды в моем диалоговом окне VC++ 6.0 видимой или невидимой при загрузке?
Настройка видимости командной кнопки в VC++ 6.0?
Ответы (4)
В редакторе ресурсов после выбора кнопки вы можете увидеть ее свойства в окне свойств. Здесь вы можете установить для свойства visible значение true/false. (при условии, что эта функция присутствует в 6.0 - сейчас я использую 2003 и не могу вспомнить, присутствовала ли она раньше в 6.0)
Добавить переменную CButton
Если вы хотите динамически изменять видимость кнопок во время загрузки, добавьте переменную для кнопки с помощью мастера классов MFC. (вам повезло с этим - этот мастер, кажется, был удален из Visual Studio .NET)
Переопределить CDialog InitDialog
Затем переопределите функцию initdialog вашего диалогового окна, а затем, после успешного вызова базовой функции InitDialog, установите для свойства showwindow кнопок значение SW_HIDE / перед отображением диалогового окна.
Код
BOOL CMyDialog::OnInitDialog()
{
CDialog::OnInitDialog();
if (ConditionShow)
m_MyButton.ShowWindow(SW_SHOW);
else
m_MyButton.ShowWindow(SW_HIDE);
return TRUE;
}
Вы также можете сделать это без добавления переменной CButton - просто вызовите
В методе OnInitDialog окна, содержащего кнопку/элемент управления, введите код:
CWnd *wnd = GetDlgItem (YOUR_RESOURCE_NAME_OF_THE_BUTTON) wnd->ShowWindow(SW_SHOW) или SW_HIDE
GetDlgItem(IDC_MY_CTRL)->ShowWindow(SW_HIDE);
- person OneWorld; 23.04.2020
Что именно вы подразумеваете под «командной кнопкой»?
В любом случае вам нужно получить дескриптор кнопки, а затем вызвать функцию ShowWindow:
BOOL prevState = ShowWindow( itemHandle, SW_HIDE );
Используйте только
ShowDlgItem(Your_DLG_ITEM_ID,1); // visible = true
ShowDlgItem(Your_DLG_ITEM_ID,0); // visible = false