以下是从头开始创建的正常运行的win32应用程序的一部分,而不是基于对话框。它会在buttom上显示文字,而不是顶部:
hButtonApply = CreateWindow(
"BUTTON",
"Reset",
WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON | BS_BOTTOM,
95, 130, 120, 40,
hWnd, (HMENU)IDC_BUTTON_RESET, hInstance, NULL);
SendMessage(hButtonApply, BM_SETSTYLE, BS_TOP, TRUE);
然而,这使它成为一个单选按钮:
SendMessage(hButtonApply, BM_SETSTYLE, BS_RADIOBUTTON, TRUE);
与资源定义的对话框按钮控件相同。
子类化是可以接受的。所有者绘制的按钮是不可接受的。谢谢,杨昊天
答案 0 :(得分:0)
某些窗口样式只能在CreateWindow期间设置,我想这可能是其中之一。
您尝试过SetWindowLong吗?
修改强>
这似乎有效:
LONG style = GetWindowLong(hBtn,GWL_STYLE);
style = (style & ~BS_BOTTOM) | BS_TOP;
SetWindowLong(hBtn,GWL_STYLE,style);