radio的一个使用问题

guogangj 2008-09-03 09:18:10
使用 BS_AUTORADIOBUTTON style创建radio button,WS_GROUP来划分分组。

第一个创建的radio就 index为0,第二个为1,第三个为2,依此类推

功能:
1,现在给一个radio SetValue(2),那它所在的组就自动地check第三个创建的radio
2,如果目前是第二个被checked,那我调用该组的任意raido 的 GetValue(),返回的应该是1

请问上面这两个功能的实现。
...全文
67 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
striking 2008-09-03
  • 打赏
  • 举报
回复
建议装个Visual.Assist.X.
guogangj 2008-09-03
  • 打赏
  • 举报
回复
才区区40分啊,小问题,却烦了我一天,我甚至考虑用static变量实现分组记录……太麻烦了
striking 2008-09-03
  • 打赏
  • 举报
回复
呵呵 不会被人认为是倒分吧。。哈
guogangj 2008-09-03
  • 打赏
  • 举报
回复
INT CPrsRadio::GetValue()
{
ASSERT(::GetWindowLong(m_hWnd, GWL_STYLE) & WS_GROUP);
CWnd *p = this;
INT iIndex=0;
do
{
if(1==((CButton *)p)->GetCheck())
return iIndex;
p = p->GetWindow(GW_HWNDNEXT);
++iIndex;
} while(p!=NULL && !(::GetWindowLong(p->m_hWnd, GWL_STYLE) & WS_GROUP));

return -1;
}

void CPrsRadio::SetValue(INT iIndex)
{
ASSERT(::GetWindowLong(m_hWnd, GWL_STYLE) & WS_GROUP);
CWnd *p = this;
INT i=0;
do
{
if(i==iIndex)
{
p->SendMessage(BM_CLICK);
return;
}
p = p->GetWindow(GW_HWNDNEXT);
++i;
} while(p!=NULL && !(::GetWindowLong(p->m_hWnd, GWL_STYLE) & WS_GROUP));
}
guogangj 2008-09-03
  • 打赏
  • 举报
回复
没人答复?我解决了,谢谢striking的指导。

INT CPrsRadio::GetValue()
{
ASSERT(::GetWindowLong(m_hWnd, GWL_STYLE) & WS_GROUP);
CWnd *p = this;
INT iIndex=0;
do
{
if(1==((CButton *)p)->GetCheck())
return iIndex;
p = p->GetWindow(GW_HWNDNEXT);
++iIndex;
} while(p!=NULL && !(::GetWindowLong(p->m_hWnd, GWL_STYLE) & WS_GROUP));

return -1;
}

void CPrsRadio::SetValue(INT iIndex)
{
ASSERT(::GetWindowLong(m_hWnd, GWL_STYLE) & WS_GROUP);
CWnd *p = this;
INT i=0;
do
{
if(i==iIndex)
{
p->SendMessage(BM_CLICK);
return;
}
p = p->GetWindow(GW_HWNDNEXT);
++i;
} while(p!=NULL && !(::GetWindowLong(p->m_hWnd, GWL_STYLE) & WS_GROUP));
}
guogangj 2008-09-03
  • 打赏
  • 举报
回复
这是class的原型:

class CPrsRadio : public CButton
{
public:
CPrsRadio();
CWnd* Create(StruCreateParameters *pParam);
virtual ~CPrsRadio();

INT GetValue();
void SetValue(INT iIndex);
protected:
DECLARE_MESSAGE_MAP()
};

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧