【问题标题】:Multiline button in winapiwinapi中的多行按钮
【发布时间】:2017-03-21 20:57:20
【问题描述】:

如何在 winAPI 中创建多行按钮(\n 甚至 \r\n 都不起作用)。代码如下:

HWND hPrzyciskoff = CreateWindowEx( 0, "BUTTON", "Play offline", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 410, 550, 380, 25, hwnd, NULL, hInstance, NULL );

【问题讨论】:

    标签: c++ winapi button


    【解决方案1】:

    BS_MULTILINE 添加到您在CreateWindowEx() 的第四个 参数中指定的样式中。

    正如Button Styles 的文档所解释的那样:

    BS_MULTILINE

    如果文本字符串太长而不能放在按钮矩形中的单行上,则将按钮文本换成多行。

    按钮文本中的\n 字符将具有所需的效果。

    查看Button Types 页面上的屏幕截图,看看它的样子。

    【讨论】:

    • 这对按钮有用吗? (不是说没有,我没试过)
    • @JonathanPotter:是的,确实如此。请参阅 MSDN 上Button Types 的屏幕截图。
    • 每天学习新东西 :)
    【解决方案2】:

    大的多行按钮的替代品可以是命令链接按钮BS_COMMANDLINK。它有正文和附加注释(通过BCM_SETNOTE 消息或Button_SetNote 宏设置),以不同大小的字体显示。字体是预定义的,据我所知无法更改。还有一个默认的绿色箭头,可以用另一个图像替换(通过BM_SETIMAGE),但不能完全删除。但是,可以通过WM_CTLCOLORBTN 消息更改按钮背景(这不适用于任何其他按钮),这有时会非常方便,例如与工具栏中的窗口背景融为一体。

    【讨论】:

      猜你喜欢
      • 2013-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-08
      • 1970-01-01
      • 2018-04-10
      • 2017-12-14
      • 1970-01-01
      相关资源
      最近更新 更多