MFC单选框是不是必须用一个按钮实现相应选择

MFC单选框是不是必须用一个按钮实现相应选择,第1张

要想实现上述功能,只需要为每个单选按钮控件分别编程

单选初始选中第一个单选按钮问题,需要将程序前面预说明中m_jinzhi = -1改成m_jinzhi = 0

第一次运行程序时,单选按钮虽选中,但ID为IDC_SHOW的控件中仍没有需要的内容,这时解决办法是在OnInitDialog()函数中添加一行

OnRadio1()

即可

void CAsdfgDlg::OnRadio1()

{

// TODO: Add your control notification handler code here

UpdateData(TRUE)

CString str

GetDlgItem(IDC_RADIO1)->GetWindowText(str)

GetDlgItem(IDC_SHOW)->SetWindowText(str)

}

void CAsdfgDlg::OnRadio2()

{

// TODO: Add your control notification handler code here

UpdateData(TRUE)

CString str

GetDlgItem(IDC_RADIO2)->GetWindowText(str)

GetDlgItem(IDC_SHOW)->SetWindowText(str)

}

void CAsdfgDlg::OnRadio3()

{

// TODO: Add your control notification handler code here

UpdateData(TRUE)

CString str

GetDlgItem(IDC_RADIO3)->GetWindowText(str)

GetDlgItem(IDC_SHOW)->SetWindowText(str)

}

若满意请及时采纳,谢谢

这是一个复杂的问题。

如果exe是VC++或Delphi等书写的,试试用 Reshacker 删除某些控件。

如果exe是VB编写的,试试DeVB这类反编译软件。

如果exe加壳了,先脱壳。

动态创建头文件中声明:

CEdit* m_Edits

cpp文件的OnInitDialog函数中:

m_Edits=new CEdit(50)

for(int i=0i<50i++)

{

m_Edits[i].Create(……)

}

程序执行结束时:

for(int i=0i<50i++)

{

delete []m_Edits

}

不过这种情况只适合你所有的Edit控件在对话框上的位置都是按规律排列的。如果不是,请用下面的方法:

在头文件中声明足够多元素的CEdit数组:

CEdit m_Edit[50]//假设你事先放好了50个Edit控件

然后找到对话框的DoDataExchange(CDataExchange* pDX)函数,添加如下代码:

DDX_Control(pDX,IDC_XXX, m_Edit[0])

DDX_Control(pDX,IDC_YYY, m_Edit[1])

……………………

IDC_XXX和IDC_YYY是各个Edit的ID

像这样手动将所有编辑框添加完就行了,以后就可以用数组的方式访问他们了


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11803753.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存