【问题标题】:How to disable the control in Custom Wizard (Custom Project Template) for Visual Studio (Visual C++)?如何禁用 Visual Studio(Visual C++)的自定义向导(自定义项目模板)中的控件?
【发布时间】:2014-11-10 00:07:36
【问题描述】:

我想在 Visual Studio 2013 (Visual C++) 中默认禁用使用 Custom Wizard 创建的项目向导中的某些控件。

代码:

<input class="CheckBox" type="checkbox" id="BOX1" title="Box 1">

创建一个复选框。

所以我都试过了:

<input class="CheckBox" type="checkbox" id="BOX1" title="Box 1" disabled>

和:

<input class="CheckBox" type="checkbox" id="BOX1" 
    title="Box 1" disabled="disabled">

但它们都不起作用(复选框仍处于启用状态)。

我什至尝试包含 JS:

alert('JS works'); //alert occured (indeed, JS works in general)
document.getElementById("BOX1").disabled = true; //did not work

那么,如何禁用该控件?

例如,这里“使用 HTML 对话框”被禁用,我想在我的控件上获得相同的效果(截图来自 MFC 向导,但没关系):

【问题讨论】:

  • 很想知道为什么您没有查看您引用的示例向导的源代码...您在问“为什么 A 不像 B 那样工作”的问题,而不是实际上看看 B 是如何工作的。
  • @icabod 我正在搜索 Visual Studio 的抛出文档,而不是抛出代码本身(我认为它在某个地方,我创建的示例是在 MSDN 页面的帮助下制作的)。在您看来这可能很愚蠢,但我的印象是,“禁用控制”是如此普遍,以至于无需查看源代码就应该对其进行详细记录。但现在我同意,查看样本的来源是要走的路。
  • 这一切都应该记录在案,我同意,理论上你的方法应该有效。 MS 提供了它使用的所有向导(通常),所以只需看看能满足你需求的那个。这就像一个内置教程:)

标签: c++ visual-studio visual-studio-2013 project-template


【解决方案1】:

我的答案基于旧版本的 Visual Studio (2010),它可能具有不同的向导系统,但至少它是一个答案...

查看 MFC AppWizard,创建(默认禁用)复选框的方法是有一个带有名称的基本复选框(在本例中为 HTML_DIALOG)。向导 HTML 有一个 onload 方法,该方法调用一些 JScript 以使用所需的默认设置初始化页面:

function InitDocument(document) {
  ...
  HTML_DIALOG.disabled = true;
  HTML_DIALOG_LABEL.disabled = true;
  ...
}

Visual Studio 应用程序向导通常位于基本 VS 安装目录下,(例如)VC\VCWizards。我上面引用的 MFC AppWizard 更深,在(对于我的安装和语言环境)AppWiz\MFC\Application\html\1033 下。具体路径可能因版本和语言而异。

对于您的示例,如果这是您想要默认禁用的唯一项目,您可以走以下路线:

<body ... onload="BOX1.disable=true;">

否则调用onload方法:

<body ... onload="initialise(document);">
   ...
</body>
<script language="JSCRIPT">
  function initialise(document) {
    BOX1.disabled = true;
    BOX1_label.disabled = true;
  }
</script>

正如我所说,这是基于 VS2010,也完全未经测试,但从中我得到的印象是您的 HTML 标签本身不应该包含默认值,它们是在 HTML 加载后设置的。这种方法实际上为您提供了更大的空间来根据参数“调整”默认值。我猜。

【讨论】:

  • 这听起来可能很蹩脚,但是...... MFC AppWizard 代码(您引用的)在哪里?我的意思是,我在哪里可以找到它的 .html、.vcxproj 等文件?无论如何,我会尽快奖励答案(我不能在几个小时内完成)。
  • @PolGraphic 查看 Visual Studio 安装目录,可能在 VC\VCWizards 下。我查看的文件更深,在AppWiz\MFC\Application\html\1033 下。希望对您有所帮助。
  • 谢谢 - 现在我已经拥有了我需要的一切 :)您能否将该评论移至答案中 - cmets 有时会被删除,我猜该路径可能是答案的有用注释。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-08
  • 2020-01-19
  • 2011-07-05
  • 2017-10-25
  • 2012-03-31
  • 2019-03-20
相关资源
最近更新 更多