0

这应该相当简单,但我一生都无法弄清楚它为什么不起作用。我做了很多谷歌搜索和 MSDN,找不到更有用的东西。

    SendMessage(GetDlgItem(hwnd, IDC_ANCIENT), BM_SETSTYLE, (WPARAM)(BS_LEFTTEXT), (LPARAM)TRUE);
    Button_SetStyle(GetDlgItem(hwnd, IDC_ANCIENT), BS_LEFTTEXT, TRUE);

这就是我所拥有的。参数是对的,我测试了样式BS_3STATE,效果很好。我把它设置为重绘。我在对话框的 WM_INITDIALOG 消息中有这些行。

该对话框及其上的所有内容都包含在我的资源文件中。

有任何想法吗?

谢谢。

http://imageshack.us/a/img153/6594/rydv.jpg

4

2 回答 2

2

BS_LEFTTEXT 不适用于按钮。来自MSDN(强调添加):

BS_LEFTTEXT当与单选按钮或复选框样式结合使用时 ,将文本放置在单选按钮或复选框的左侧。与 BS_RIGHTBUTTON 样式相同。

对于你想要的,你可能需要做一个所有者绘制控件。查看BS_OWNERDRAW同一链接上的样式。

于 2013-07-15T23:26:49.693 回答
2

我下载了一个资源文件编辑器并找到了解决方案。

           DEFPUSHBUTTON      "Ancient Crystal [Click]",IDC_ANCIENT,15,292,140,12, BS_LEFT 

如果您将 BS_LEFT 样式放在资源文件中,它将使文本左对齐。

编辑:最后注意我试图在没有正确处理对话框的过程中更改字体对齐方式。我正在将程序的句柄交给主窗口。

于 2013-07-16T23:59:44.400 回答