【问题标题】:in-place message in MFC?MFC中的就地消息?
【发布时间】:2011-06-27 10:26:20
【问题描述】:

嗨 如果有人知道如何在 MFC 中使用就地警告消息,您能否分享信息。 有没有办法使用它,或者有什么我们可以直接在mfc中使用的控件。

就地警告消息:带有适当图标的警告消息和警告消息将显示在同一对话框中。

我在 msdn 中找到了一些关于 in-place message 的信息

InPlace message in msdn glossary

Different messages

请分享信息。

问候

哈拉纳德

【问题讨论】:

  • “就地消息”是什么样的?您能否向我们展示您正在寻找的效果的屏幕截图?我假设您不是在谈论 AfxMessageBox 函数。
  • 您可以参考上面链接中提供的链接 -> 不同的消息。在该链接中,您可以参考许多消息框。其中,请参阅标题为“连接到网络投影仪”的对话框。它有一条警告消息->“使用不安全的网络...”该消息是就地消息。

标签: visual-c++ mfc warnings message in-place


【解决方案1】:

根据您的评论,您似乎将此称为就地消息:

   

当然,具有讽刺意味的是,这在您链接到的 MSDN 页面上被标记为 不正确 示例。特别建议您提供更具体的建议,例如使用密码保护投影仪,以使无意的观众看不到演示文稿。然而,抛开这些......

这在 MFC 中很容易实现。只需使用两个STATIC controls 即可完成,一个在左侧显示图标(在本例中为警告三角形),而右侧较长的一个显示静态文本(警告消息本身)。如果您使用对话框编辑器来创建窗口,只需将两个控件拖到对话框窗口并相应地排列它们即可。没有一个控件可以封装此功能,但考虑到使用两个单独的静态控件来实现这一点已经如此简单,因此期望会有这样的功能是很愚蠢的。

要加载内置图标,例如上面显示的警告三角形,您可以使用LoadStandardIcon function 并指定IDI_WARNING 作为图标名称。值的完整列表可在here 获得。显然,您也可以加载您选择的任何图标;只需将其添加到项目的资源中即可。

由于您可能希望仅在适用时显示警告消息,因此您需要根据用户在对话框中采取的操作以编程方式隐藏和显示这两个控件。标准的ShowWindow 成员函数使这项任务变得微不足道。如果您希望警告消息可见,请在两个静态控件上调用它,传递 SW_SHOW 作为其参数。否则,您可以指定SW_HIDE 隐藏控件。

【讨论】:

    【解决方案2】:

    作为您正在尝试做的事情的替代方案;你可以把你的信息放在一个对话框中:

    int nResult = AfxMessageBox("Save changes to Current Job?", MB_YESNO);
    
        if (nResult == IDYES)
        {
            OnFileSave();
        } 
    

    【讨论】:

    • 您好,问题主要与 GUI 外观有关。但上面的答案帮助我尝试。谢谢你的建议。
    猜你喜欢
    • 2018-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-18
    • 1970-01-01
    • 2015-05-29
    相关资源
    最近更新 更多