winapi中的多行按钮
Posted
技术标签:
【中文标题】winapi中的多行按钮【英文标题】:Multiline button in winapi 【发布时间】: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 );
【问题讨论】:
【参考方案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 消息更改按钮背景(这不适用于任何其他按钮),这有时会非常方便,例如与工具栏中的窗口背景融为一体。
【讨论】:
以上是关于winapi中的多行按钮的主要内容,如果未能解决你的问题,请参考以下文章