使用 BS_AUTORADIOBUTTON style创建radio button,WS_GROUP来划分分组。第一个创建的radio就 index为0,第二个为1,第三个为2,依此类推功能:
1,现在给一个radio SetValue(2),那它所在的组就自动地check第三个创建的radio
2,如果目前是第二个被checked,那我调用该组的任意raido 的 GetValue(),返回的应该是1请问上面这两个功能的实现。
1,现在给一个radio SetValue(2),那它所在的组就自动地check第三个创建的radio
2,如果目前是第二个被checked,那我调用该组的任意raido 的 GetValue(),返回的应该是1请问上面这两个功能的实现。
解决方案 »
- 位块传输
- vc2005 如何给对话框添加WM_ERASEBKGND消息
- 关于COM组件的问题?
- √ 急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!(所有应用软件被屏蔽)求救
- 请教?有没有关闭或者停止键盘响应的函数???
- 一个疑问,怎么解决?
- 谁有 VC setting 设置详细说明,谢谢~~
- ATL高手,请进。有一个非常郁闷的问题
- 处女作(DbSpy)发布,可以将两个数据库的结构进行对照输出,欢迎大家提宝贵意见。
- 谁调通了《程序员大本营2001 微软专刊》中的“从MFC中分离使用消息循环和CWnd类”一文中的程序!!
- 如何在vc6.0界面上添加flash动画。
- CDialog::OnKeyDown总不被执行?
{
public:
CPrsRadio();
CWnd* Create(StruCreateParameters *pParam);
virtual ~CPrsRadio(); INT GetValue();
void SetValue(INT iIndex);
protected:
DECLARE_MESSAGE_MAP()
};
{
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));
}
{
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));
}