我定义了几个数据:
#define ID_1 1
#define ID_2 2
#define ID_3 3
#define ID_4 4
.
.
.
#define ID_10 10如何用循环的方式取出ID?
for(int i=0;i<10;i++)
{
printf("%d",ID_i);
}
我用了一个展开的宏
#define GET_ID(x) ID_(x)
可是可是提示错误:ID_不存在。
#define ID_1 1
#define ID_2 2
#define ID_3 3
#define ID_4 4
.
.
.
#define ID_10 10如何用循环的方式取出ID?
for(int i=0;i<10;i++)
{
printf("%d",ID_i);
}
我用了一个展开的宏
#define GET_ID(x) ID_(x)
可是可是提示错误:ID_不存在。
解决方案 »
- 紧急求助,求助, CString转化为const char*
- VC MFC 界面问题
- 有关GridCtrl单元格合并问题
- 创建 DLL 是如何使用系统时间函数?
- 如何判断当前控件是否获取焦点(处于活动状态),如ListCtrl
- 送分:如何得到当前用户的桌面路径?注意可能有不同的用户
- mfc应用程序中的com对象如何创建。
- CryptAcquireContext的速度问题
- 98ddk 中的视频卡驱动示例要VC5.0,有没变通的法子用6.0. vc5.0哪里有下载的?
- 能否自动判断然盘插入软驱
- 请教用SoapToolkit20怎么和https进行soap通讯?
- 超難問題,怎麼樣把被動安裝驅動程序制作打包成一個主動安裝的驅動程序,說明見內容!!
每个EDIT 的ID 如上所显。
CEdit *pEdit;
pEdit=(CEdit*)GetDlgItem(ID_1);
pEdit->EnableWindow(false);
如果10个EDIT的ID不连续。那么我就要写10个这样的东西。所以我想用一个循环来完成。
每个EDIT 的ID 如上所显。
CEdit *pEdit;
pEdit=(CEdit*)GetDlgItem(ID_1);
pEdit->EnableWindow(false);
如果10个EDIT的ID不连续。那么我就要写10个这样的东西。
===========================
简单:
CEdit *pEdit;
for(int i= ID_1;i<=ID_10;i++)
{
pEdit=(CEdit*)GetDlgItem(i);
pEdit->EnableWindow(false);
}
上面一定OK!
不行的,i不会展开,得到的结果是ID_i
CEdit *pEdit;
for(int i= 0; i<10; i++)
{
pEdit=(CEdit*)GetDlgItem(ID(i));
pEdit->EnableWindow(false);
}
上面的语句是不能编译通过的!
enum{
ID_1 = 1,
ID_2 = 2,
...
}
2、用一个临时变量int nCtrlID
for(int nCtrlID = ID_1; nCtrlID ++; nCtrlID <= ID_10)
{
...
}
3、直接修改Resource.h文件
将所有的控件ID改成连续增加的值,注意不要和其他同一界面下的控件ID重复
比如:
#define IDC_EDIT1 1001
#define IDC_EDIT2 1002
#define IDC_EDIT3 1003
...
#define IDC_EDIT10 1010
不过还是要一个临时变量
for(int nID = IDC_EDIT1;nID++;nID<=IDC_EDIT10;)
{
...
}
for(int nCtrlID = ID_1; nCtrlID <= ID_10;nCtrlID ++)
...
for(int nID = IDC_EDIT1;nID<=IDC_EDIT10;nID++;)
...
========================
当然是pinel兄弟的。你的那种方法是可以实现。
#define GetID(x) x == 0 ? ID_1 : (x == 1 ? ID_2 : (x == 2 ? ...))2.baby2003627(梦想)
定义一个结构体,把东西都放里面,然后再调用!!3.vcleaner(??.......)
ID_1为第一个Edit控件的ID,ID_10为第十个Edit控件的ID,这十个Edit控件的ID要是连续的,如果不是的,可以在Resource.h中修改,注意修改以后的ID不能和已经存在的其他资源的ID冲突。
-----------------------------------------------------
以上都行!
谢谢大家的思路。