getdlgitem

magic_an001 2012-04-12 01:35:29
想得到edit控件的值,edit空间又很多,控件ID又是连续的,不想一个一个的来,希望用个循环可以解决:

CString str="IDC_EDIT";
int i;
CString temp;
for(i=85;i<=98;i++)
{
temp.Format("%d",i);
str="IDC_EDIT"+temp;
GetDlgItem(str)->GetWindowText(temp);
qz[i]=atof(temp);
}

GetDlgItem的参数又必须是int的,谁知道怎么能解决这个问题
...全文
141 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
magic_an001 2012-04-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
控件ID不就是资源号吗?

[/Quote]
我可能没表达清楚,在resource.h里面对每个控件ID都有个宏定义,比如 #define IDC_EIDT1 100
我的意思是100是资源号,IDC_EDIT1是控件ID,不知道这样说有没有错误
我是想通过循环得到IDC_EDIT85到IDC_EIDT98的所有控件的指针,有没有办法,除了楼上的
振翅高飞 2012-04-12
  • 打赏
  • 举报
回复
int EditId=0;
HWND hWndChild =::GetWindow(m_hWnd,GW_CHILD);
while(hWndChild)
{
char buf=[512];
::GetClassName(hWndChild,buf,512);//得到枚举的控件是什么类型的,
CString str=buf;
str.TrimRight();
if(str=="Edit")
{
EditId=GetDlgCtrlID(hWndChild);
sprintf(buf,"编辑控件ID是:%d,句柄是:%d",EditId,hWndChild);
::MessageBox(m_hWnd,buf,"信息提示",MB_OK);
}
hWndChild=::GetWindow(hWndChild,GW_HWNDNEXT);


代码没测试过,但是思路差不多,无非是遍历所有控件完成已知句柄转为ID或者已知ID得到句柄。
wtbike 2012-04-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

引用 2 楼 的回复:

你的ID从85开始,但qz也从85开始,是否有逻辑错误?
不过这与你的问题和我的回答都无关。

恩,呵呵 确实写错了。。谢谢,你的方法不错啊,可以考虑,我只知道控件ID是连续的,不知道资源号是不是连续的,有什么别的方法没
[/Quote]
控件ID不就是资源号吗?
magic_an001 2012-04-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

你的ID从85开始,但qz也从85开始,是否有逻辑错误?
不过这与你的问题和我的回答都无关。
[/Quote]
恩,呵呵 确实写错了。。谢谢,你的方法不错啊,可以考虑,我只知道控件ID是连续的,不知道资源号是不是连续的,有什么别的方法没
youngwolf 2012-04-12
  • 打赏
  • 举报
回复
你的ID从85开始,但qz也从85开始,是否有逻辑错误?
不过这与你的问题和我的回答都无关。
youngwolf 2012-04-12
  • 打赏
  • 举报
回复
int i;
CString temp;
for(i=85;i<=98;i++)
{
GetDlgItem(i)->GetWindowText(temp);
qz[i]=atof(temp);
}

16,467

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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