如:一个dialog中包含了数个button,所有的button都用相同的
id,如IDC_BUTTON,如何在运行时得到button数组的入口??
先谢了。
id,如IDC_BUTTON,如何在运行时得到button数组的入口??
先谢了。
解决方案 »
- VC6-Active x control can not be instantiated
- 菜单操作中Detach()函数的问题
- 线程中定时器问题
- 好像在VC板块的高手少了很多,不知道是不是真的。
- 哪位大哥大姐帮忙调试一下一个简单的程序(c)啊,表达式计算,我现在手头没有编译器啊!
- 用C语言如何获得网卡的物理地址
- 请问那儿有Bjarne Stroustrup的<<The C++ Programming Lanauge>>下载
- 高分求教!如何将OLE对象保存到剪贴板中?
- MFC编程中怎么实现曲线的绘制
- 简单问题,但又在CodeProject或CodeGuru上找不着例子。
- 谁能提供msdn的下载网址?
- 在vbscript中使用ATL COM中返回safearray参数,报错,不知道为什么,附代码,大家研究一下
你可以改#define IDC_BUTTONn,使之连续,GetDlgItem(IDC_BUTTON1)得到第一个...
但是这样很难循环了.你的define是不是这样的:
#define IDC_BUTTONn(n) IDC_BUTTON##n
这样我不能传变量啊,比如:int i=2; I
DC_BUTTONn(i)变成IDC_BUTTONi,而不是IDC_BUTTON2。而且我用static控件的话,id能重复的啊。
有没有别的方法啊
#define IDC_BUTTON(N) (IDC_BUTTON0 + N)
for(int i=0; i<4; i++)
{
GetDlgItem(IDC_BUTTON(i))...
}
设置不同的BUTTON ID号最好能连续。
将ID值做为参数传送给处理函数。
在函数中用CButton* pBut = (CButton*)GetDlgItem(id);得到控件,就可以做其它处理了。
在DoDataExchange里,改成
DDX_Control(pDX, IDC_STATIC1, m_static[0]);
DDX_Control(pDX, IDC_STATIC2, m_static[1]);
DDX_Control(pDX, IDC_STATIC3, m_static[2]);
DDX_Control(pDX, IDC_STATIC4, m_static[3]);
...
就可以了。