按钮样式
指定按钮样式的组合。 如果使用 BUTTON 类和 CreateWindow 或 CreateWindowEx 函数创建按钮,则可以指定下面列出的任何按钮样式。
HRESULT Button::CreateText(HWND hParent, const TCHAR *szCaption, int nID,
const Rect& rcBound)
{
CREATESTRUCT create;
ZeroMemory(&create, sizeof(CREATESTRUCT));
create.x = rcBound.left;
create.y = rcBound.top;
create.cx = rcBound.right - create.x;
create.cy = rcBound.bottom - create.y;
create.hwndParent = hParent;
create.lpszName = szCaption;
create.hMenu = (HMENU)(INT_PTR)nID;
create.lpszClass = TEXT("BUTTON");
create.style = BS_PUSHBUTTON | BS_FLAT;
return Control::Create(create);
}
GitHub 上的 Windows 经典示例中的例子。
常数 | 说明 |
---|---|
|
创建一个与检查框相同的按钮,只不过该框可以灰显,也可以选中或清除。 使用灰色状态可显示未确定检查框的状态。 |
|
创建一个与三状态检查框相同的按钮,不同之处在于该框会在用户选择它时更改其状态。 状态循环通过已检查、不确定和已清除。 |
|
创建一个与检查框相同的按钮,不同之处在于用户每次选择检查框时,检查状态会自动在选中和清除之间切换。 |
|
创建与单选按钮相同的按钮,但当用户选择按钮时,系统会自动将按钮的检查状态设置为选中,并自动将同一组中所有其他按钮的检查状态设置为已清除。 |
|
指定按钮显示位图。 请参阅“备注”部分,了解其与BS_ICON的交互。 |
|
将文本放置在按钮矩形的底部。 |
|
将按钮矩形中的文本水平居中。 |
|
创建包含文本的小型空检查框。 默认情况下,文本显示在检查框右侧。 若要在检查框左侧显示文本,请将此标志与BS_LEFTTEXT样式 (或与等效BS_RIGHTBUTTON样式) 合并。 |
|
创建一个命令链接按钮,该按钮的行为类似于BS_PUSHBUTTON样式按钮,但命令链接按钮的左侧有一个绿色箭头,指向按钮文本。 可以通过将BCM_SETNOTE消息发送到按钮来设置按钮文本描述文字。 |
|
创建一个命令链接按钮,该按钮的行为类似于BS_PUSHBUTTON样式按钮。 如果该按钮位于对话框中,则用户可以通过按 Enter 键来选择命令链接按钮,即使命令链接按钮没有输入焦点也是如此。 此样式可用于让用户快速选择最可能 (默认) 选项。 |
|
创建一个推送按钮,该按钮的行为类似于BS_PUSHBUTTON样式按钮,但具有独特的外观。 如果该按钮位于对话框中,则用户可以通过按 Enter 键来选择该按钮,即使该按钮没有输入焦点也是如此。 此样式可用于让用户快速选择最可能 (默认) 选项。 |
|
创建一个拆分按钮,该按钮的行为类似于BS_PUSHBUTTON样式按钮,但也具有独特的外观。 如果拆分按钮位于对话框中,则用户可以通过按 Enter 键来选择拆分按钮,即使拆分按钮没有输入焦点也是如此。 此样式可用于让用户快速选择最可能 (默认) 选项。 |
|
创建一个矩形,可在其中对其他控件进行分组。 与此样式关联的任何文本都显示在矩形的左上角。 |
|
指定按钮显示图标。 请参阅“备注”部分,了解其与BS_BITMAP的交互。 |
|
指定按钮是二维的;它不使用默认着色来创建三维图像。 |
|
使按钮矩形中的文本左对齐。 但是,如果按钮是没有BS_RIGHTBUTTON样式的检查框或单选按钮,则文本在检查框或单选按钮的右侧保持对齐。 |
|
与单选按钮或检查框样式结合使用时,将文本放在单选按钮或检查框的左侧。 与BS_RIGHTBUTTON样式相同。 |
|
如果文本字符串太长,因而无法在按钮矩形中单行显示,则分多行显示按钮文本。 |
|
使按钮能够将 BN_KILLFOCUS 和 BN_SETFOCUS 通知代码发送到其父窗口。 请注意,无论按钮是否具有此样式,按钮都会发送 BN_CLICKED 通知代码。 若要获取 BN_DBLCLK 通知代码,按钮必须具有BS_RADIOBUTTON或BS_OWNERDRAW样式。 |
|
创建所有者绘制的按钮。 当按钮的视觉方面发生更改时,所有者窗口会收到 WM_DRAWITEM 消息。 不要将BS_OWNERDRAW样式与任何其他按钮样式组合在一起。 |
|
创建一个按钮,当用户选择该按钮时,该按钮会将 WM_COMMAND 消息发布到所有者窗口。 |
|
使按钮 (,例如检查框、三态检查框或单选按钮,) 看起来像一个按钮。 按钮在未按下或选中时看起来会引发,在按下或选中按钮时会凹陷。 |
|
创建包含文本的小圆圈。 默认情况下,文本显示在圆圈的右侧。 若要在圆的左侧显示文本,请将此标志与BS_LEFTTEXT样式 (或等效BS_RIGHTBUTTON样式) 组合。 将单选按钮用于相关但互斥选项组。 |
|
右对齐按钮矩形中的文本。 但是,如果按钮是没有BS_RIGHTBUTTON样式的检查框或单选按钮,则文本在检查框或单选按钮的右侧右对齐。 |
|
将单选按钮的圆或检查框的正方形置于按钮矩形的右侧。 与BS_LEFTTEXT样式相同。 |
|
创建拆分按钮。 拆分按钮具有下拉箭头。 |
|
指定按钮显示文本。 |
|
将文本放置在按钮矩形的顶部。 |
|
请勿使用此样式。 在BS_* 样式位上使用 OR 运算符产生的复合样式位。 它可用于屏蔽给定位掩码中的有效BS_* 位。 请注意,这已过期,并且未正确包含所有有效样式。 因此,不应使用此样式。 |
|
已过时,提供此项是为了与 16 位版本的 Windows 保持兼容。 应用程序应改用 BS_OWNERDRAW。 |
|
将文本放置在按钮矩形) 的中间 (垂直放置。 |
有关主按钮样式(如BS_CHECKBOX和BS_GROUPBOX)的插图,请参阅 按钮类型。
按钮控件上文本或图标或两者的外观取决于BS_ICON和BS_BITMAP样式,以及是否发送 BM_SETIMAGE 消息。 可能的结果如下所示。
BS_ICON还是BS_BITMAP集? | BM_SETIMAGE调用? | 结果 |
---|---|---|
是 | 是 | 仅显示图标。 |
否 | 是 | 显示图标和文本。 |
是 | 否 | 仅显示文本。 |
否 | 否 | 仅显示文本 |
要求 | 值 |
---|---|
标头 |
|