C++ C++;Win32在对齐按钮上的文本时遇到问题

C++ C++;Win32在对齐按钮上的文本时遇到问题,c++,winapi,alignment,C++,Winapi,Alignment,这应该相当简单,但我一辈子都不明白为什么它不起作用。我做了很多谷歌搜索和MSDN,找不到比这更有用的了 SendMessage(GetDlgItem(hwnd, IDC_ANCIENT), BM_SETSTYLE, (WPARAM)(BS_LEFTTEXT), (LPARAM)TRUE); Button_SetStyle(GetDlgItem(hwnd, IDC_ANCIENT), BS_LEFTTEXT, TRUE); 这就是我所拥有的。参数是正确的,我测试了样式BS_3ST

这应该相当简单,但我一辈子都不明白为什么它不起作用。我做了很多谷歌搜索和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消息中有这些行

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

有什么想法吗

谢谢


按钮不能使用BS_LEFTTEXT。起自(加强调):

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


对于您想要的,您可能需要执行所有者绘制控件。查看同一链接上的
BS\u OWNERDRAW
样式。

BS\u LEFTTEXT不适用于按钮。起自(加强调):

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


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

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

           DEFPUSHBUTTON      "Ancient Crystal [Click]",IDC_ANCIENT,15,292,140,12, BS_LEFT 
如果在资源文件中放置BS_LEFT样式,它会将文本向左对齐

编辑:最后说明
我试图在一个没有正确的对话框句柄的过程中更改字体对齐。我正在把这个过程的句柄交给主窗口。

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

           DEFPUSHBUTTON      "Ancient Crystal [Click]",IDC_ANCIENT,15,292,140,12, BS_LEFT 
如果在资源文件中放置BS_LEFT样式,它会将文本向左对齐

编辑:最后说明
我试图在一个没有正确的对话框句柄的过程中更改字体对齐。我正在将该过程的句柄传递到主窗口。

该按钮是定义为复选框还是单选按钮?BS_LEFTTEXT仅适用于这些按钮类型。还有一个你看到的屏幕截图可能会有帮助。嗯,那么有什么样式可以让文本左对齐呢?我上传了资源文件的截图和相应的按钮。谢谢。按钮是定义为复选框还是单选按钮?BS_LEFTTEXT仅适用于这些按钮类型。还有一个你看到的屏幕截图可能会有帮助。嗯,那么有什么样式可以让文本左对齐呢?我上传了资源文件的截图和相应的按钮。谢谢。是的,这就是我要做的。对于偶然发现此页面的其他人,这里有一个指向自定义控件教程的链接:。谢谢。是的,这就是我要做的。对于偶然发现此页面的其他人,这里有一个指向自定义控件教程的链接:。谢谢