gpt4 book ai didi

c++ - 在 C++ 中禁用(变灰)多个 GUI 项

转载 作者:行者123 更新时间:2023-11-30 01:14:50 25 4
gpt4 key购买 nike

问题:我正在寻找一种在 MFC C++ 应用程序中禁用(灰色)多个 项的有效方法。根据用户登录的是 SQL Server 还是 Oracle 帐户,我希望禁用一部分 GUI 项目。

我尝试过的:我使用以下代码禁用了我的两个“创建用户”按钮之一。

if(checkIsSQLServer())
{
CWnd *oraCreateUser = GetDlgItem(BTN_ORA_CREATE);
oraCreateUser->EnableWindow(false); //Disable Oracle "Create User" button
}
else
{
CWnd *sqlCreateLogin = GetDlgItem(BTN_SQL_CREATE);
sqlCreateLogin->EnableWindow(false); //Disable SQL Server "Create User" button.
}

enter image description here.

这段代码工作得很好,但它只禁用了按钮。我希望禁用任一组框中的所有项目。

我是否需要为我希望禁用的每个项目创建一个 CWnd* 对象?是否有更有效的方法,例如禁用组框中包含的所有项目的方法?

最佳答案

我用这个:

void EnableDlgItem (CWnd *dlg, int items[], BOOL bEnable)
{
int i = 0, item ;

while ((item = items[i++]) != 0)
{
CWnd *pControl = dlg->GetDlgItem(item) ;

if (pControl != NULL)
pControl->EnableWindow(bEnable) ;
}
}

...

在一些 CYourDialog::OnSomethingFunction()

static int ids[] = {IDOK, IDC_EDIT1, IDC_EDIT2, 0};
EnableDlgItem(this, ids, FALSE);

关于c++ - 在 C++ 中禁用(变灰)多个 GUI 项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29520462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com