具有 BS_AUTORADIOBUTTON 样式的所有者绘制的按钮
如何获取 BS_AUTORADIOBUTTON 的选中/未选中状态?我的代码目前不起作用。
void CPngButton::DrawItem( LPDRAWITEMSTRUCT lpDIS )
{
ASSERT(lpDIS != NULL);
UINT state = lpDIS->itemState;
if (state & ODS_CHECKED)
{
// do stuff
}
}
我也尝试过,
if (BST_CHECKED == SendMessage(BM_GETCHECK))
但这也不起作用。
How do I get the checked/unchecked state of BS_AUTORADIOBUTTON? My code currently doesn't work.
void CPngButton::DrawItem( LPDRAWITEMSTRUCT lpDIS )
{
ASSERT(lpDIS != NULL);
UINT state = lpDIS->itemState;
if (state & ODS_CHECKED)
{
// do stuff
}
}
I've also tried
if (BST_CHECKED == SendMessage(BM_GETCHECK))
but this doesn't work either.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
ODS_CHECKED 仅适用于菜单。 BM_GETCHECK 和 BM_GETSTATE 都可以提供检查状态:
ODS_CHECKED only applies to menus. BM_GETCHECK and BM_GETSTATE can both provide the checked state:
根据文档,
ODS_CHECKED
标志仅适用于菜单项:相反,要确定按钮的选中状态,您应该调用
CButton ::GetCheck
函数。它将返回以下值之一:例如:
According to the documentation, the
ODS_CHECKED
flag is only applicable to menu items:Instead, to determine the checked state of a button, you should call the
CButton::GetCheck
function. It will return one of the following values:For example: