【发布时间】:2008-11-03 05:49:59
【问题描述】:
如何使 VC++ 6.0 对话框中的命令按钮在加载时可见或不可见?
【问题讨论】:
-
这个不是很清楚。您是在说命令 menu 还是对话框本身的按钮?
标签: visual-c++ mfc visual-c++-6
如何使 VC++ 6.0 对话框中的命令按钮在加载时可见或不可见?
【问题讨论】:
标签: visual-c++ mfc visual-c++-6
从资源编辑器中选择按钮后,您可以在属性窗口中查看其属性。在这里您可以将可见属性设置为真/假。 (假设此功能存在于 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);
“commnad button”到底是什么意思?
无论如何,你需要获取按钮的句柄然后调用ShowWindow函数:
BOOL prevState = ShowWindow( itemHandle, SW_HIDE );
【讨论】:
只使用
ShowDlgItem(Your_DLG_ITEM_ID,1); // visible = true
ShowDlgItem(Your_DLG_ITEM_ID,0); // visible = false
【讨论】: