【问题标题】:How do I draw separators?如何绘制分隔符?
【发布时间】:2011-02-22 23:26:33
【问题描述】:

我正在使用 C 语言进行编程,使用 Windows API,并且想知道如何绘制分隔符。我会很感激一个代码示例。

编辑:这是一个插图。


(来源:microsoft.com

【问题讨论】:

  • 我说我正在编写一个 GUI 应用程序。你看到这些线分隔我们的 cmets 了吗?那些基本上:)
  • 您说的是菜单中的分隔符吗? (记事本的编辑菜单:撤消/分隔符/剪切/复制/粘贴/删除/分隔符/查找/查找下一个/...) 或者您在谈论平面工具栏中的分隔符? (新建/打开/保存/分隔符/撤消/重做/分隔符/...)
  • 分隔符,如在 IE 或 Firefox 中看到的分隔符,它们用于将菜单与按钮、按钮与书签工具栏等分开。

标签: c user-interface winapi separator


【解决方案1】:

使用具有SS_ETCHEDHORZ 样式的静态控件/窗口(这是资源管理器所做的,在视觉样式方面应该为您提供最准确的渲染)

【讨论】:

  • 我相信这是针对 MFC 的。我正在使用 Win32,但也许我可以查看 MFC。
  • 不是,静态控件是普通的原生win32控件
  • 谢谢。这就是我要找的:)
【解决方案2】:

我不认为你只是在寻找LineTo

对于菜单和工具栏,分隔符通常由菜单和工具栏 API 为您绘制。对于对话框中的随机分隔符等,就像你添加的图片一样,你可以画一条线。

【讨论】:

  • 如果有一个通用控件可以完全满足您的需求(而且您不必处理经典样式和视觉样式等),则所有者绘制是多余的
【解决方案3】:

好的,你只是想在表格上画直线。那是微不足道的。绘制窗口时,即处理WM_PAINT message 时,只需使用MoveToExLineTo 函数绘制一条线。

【讨论】:

    【解决方案4】:

    当您插入带有连字符“-”作为文本的普通菜单项时,您会在菜单中插入分隔符。

    Windows 会自动将它们展开为分隔符。

    【讨论】:

    • 一开始,我也相信这就是他要找的那种分隔符。给你一个-1是很邪恶的,因为你的回复是在澄清之前发布的。
    猜你喜欢
    • 1970-01-01
    • 2016-08-21
    • 2022-07-11
    • 2014-01-04
    • 2011-09-02
    • 1970-01-01
    • 2021-01-19
    • 1970-01-01
    • 2015-07-20
    相关资源
    最近更新 更多