首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

!为什么小弟我不能创建多个按钮!

2014-07-12 
求助!!为什么我不能创建多个按钮!!for(int i=0;i

求助!!为什么我不能创建多个按钮!!
for(int i=0;i<5;i++)
{
for(int j=0;j<10;j++)
{
int id=0;
m_creatbutton.Create("",WS_CHILD | WS_VISIBLE |BS_PUSHBUTTON ,
CRect(100+i*40,100+j*40,140+i*40,140+j*40),this,1111111+id);
id++;
}
}
以上是代码,为什么去掉循环创建一个按钮能够成功,加上循环就不行了


[解决办法]
资源ID每次都是相同的,当然不行了·你设置断点查看一下,id值就行了·
[解决办法]
楼上说的对,最外层循环时候,ID没有变化呀……在外层循环设置一个变量来控制ID值
[解决办法]
使用CreateWindow函数创建,m_creatbutton只是一个按钮实例对象,你循环多少次都没用
[解决办法]
第一步:先在“Resource.h”中把你需要创建按钮的IDC_BUTTONXXX准备好,每个按钮对应1个ID号,不能重复(如果需要创建不同模样的按钮的话);
第二步:是出错的关键。动态创建应该使用指针,而不是实例化后的对象。把“m_creatbutton”改为:
CButton* pBtn = new CButton;
pBtn->Create("",WS_CHILD | WS_VISIBLE |BS_PUSHBUTTON ,
CRect(100+i*40,100+j*40,140+i*40,140+j*40),this,XXX+id);
[解决办法]
把这句放到循环外面
int id=0;
[解决办法]

C/C++ code
类成员的定义变为CButton m_creatbutton[50];然后代码实现变为:    int id=0;    for(int i=0;i<5;i++)    {        for(int j=0;j<10;j++)        {            m_creatbutton[i*10+j].Create("jj",WS_CHILD | WS_VISIBLE |BS_PUSHBUTTON ,                CRect(100+i*40,100+j*40,140+i*40,140+j*40),this,1111111+id);            id++;        }    }
[解决办法]
id相同倒没问题,问题是你没有创建50个按钮,应该声明一个数组,然后再创建。

[解决办法]
你们仔细看。。他ID没相同
关键是m_creatbutton要数组
[解决办法]
8楼这都看错,明显id恒为0,怎么说不重复

热点排行