Настройка видимости командной кнопки в VC ++ 6.0? - PullRequest
0 голосов
/ 03 ноября 2008

Как сделать командную кнопку в моем диалоге VC ++ 6.0 видимой или невидимой при загрузке?

Ответы [ 4 ]

3 голосов
/ 03 ноября 2008

В редакторе ресурсов после выбора кнопки вы можете увидеть ее свойства в окне свойств. Здесь вы можете установить для свойства 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;
   }
1 голос
/ 05 июня 2017

Используйте только

ShowDlgItem(Your_DLG_ITEM_ID,1); // visible = true   
ShowDlgItem(Your_DLG_ITEM_ID,0); // visible = false
1 голос
/ 03 ноября 2008

Вы также можете сделать это без добавления переменной CButton - просто вызовите

В методе OnInitDialog окна, содержащего кнопку / элемент управления, введите код:

CWnd * wnd = GetDlgItem (YOUR_RESOURCE_NAME_OF_THE_BUTTON) wnd-> ShowWindow (SW_SHOW) или SW_HIDE

1 голос
/ 03 ноября 2008

Что именно вы подразумеваете под «кнопкой коммнада»?

В любом случае, вам нужно получить дескриптор кнопки, а затем вызвать функцию ShowWindow:

BOOL prevState = ShowWindow( itemHandle, SW_HIDE );
...