15,978
社区成员
发帖
与我相关
我的任务
分享
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));
}
class CPrsRadio : public CButton
{
public:
CPrsRadio();
CWnd* Create(StruCreateParameters *pParam);
virtual ~CPrsRadio();
INT GetValue();
void SetValue(INT iIndex);
protected:
DECLARE_MESSAGE_MAP()
};