【问题标题】:Setting command button visibility in VC++ 6.0?在 VC++ 6.0 中设置命令按钮的可见性?
【发布时间】:2008-11-03 05:49:59
【问题描述】:

如何使 VC++ 6.0 对话框中的命令按钮在加载时可见或不可见?

【问题讨论】:

  • 这个不是很清楚。您是在说命令 menu 还是对话框本身的按钮?

标签: visual-c++ mfc visual-c++-6


【解决方案1】:

从资源编辑器中选择按钮后,您可以在属性窗口中查看其属性。在这里您可以将可见属性设置为真/假。 (假设此功能存在于 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;
   }

【讨论】:

  • const int cmdShow = ConditionShow ? SW_SHOW:SW_HIDE; m_MyButton.ShowWindow(cmdShow);
【解决方案2】:

您也可以在不添加 CButton 变量的情况下执行此操作 - 只需调用

在包含按钮/控件的窗口的 OnInitDialog 方法中,放入代码:

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

【讨论】:

  • 更短:GetDlgItem(IDC_MY_CTRL)->ShowWindow(SW_HIDE);
【解决方案3】:

“commnad button”到底是什么意思?

无论如何,你需要获取按钮的句柄然后调用ShowWindow函数:

BOOL prevState = ShowWindow( itemHandle, SW_HIDE );

【讨论】:

  • 无法解析该方法。如果您真的认为它存在,请发布文档 – OneWorld 刚刚
【解决方案4】:

只使用

ShowDlgItem(Your_DLG_ITEM_ID,1); // visible = true   
ShowDlgItem(Your_DLG_ITEM_ID,0); // visible = false

【讨论】:

  • 无法解析该方法。如果您真的认为它存在,请发布文档
猜你喜欢
  • 2011-09-02
  • 1970-01-01
  • 2013-11-30
  • 2012-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-09
  • 1970-01-01
相关资源
最近更新 更多