vc++数组控件的快速设置-动态设置控件-控件数组

翻译|其它|编辑:郝浩|2007-09-19 10:54:16.000|阅读 2871 次

概述:

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

网上的许多例子确实很麻烦,也很少有真正意义上实现动态控件。

前提是有时候我们不知道控件的数量(比方说我们的指标库是在数据库中定义的,要为每个指标定义一个控件,而指标的数量我们是不知道的),这样在  BEGIN_MESSAGE_MAP  中列出来是不可能的,当然在  AFX_MSG  列出来也是不可能的,怎么解决这个问题,昨天在论坛上征求大家的建议,终于解决了。

下面把定义动态数组控件的方法先介绍一下:

1.打开资源窗口的  string talbel  添加一个  ID IDC_MYBUTTON0caption  动态数组,系统会自动分配  ID    value

2.为你的窗体定义一个变量  N(私有共有都可以,看情况),它用表示控件的个数的,将来要被动态赋值。

3.打开Resource.h文件(该文件在你的工程文件目录下,或者搜索IDC_MYBUTTON0,就可以掉出来),添加一个动态数组,目的是为每一个  IDC_MYBUTTON  分配一个  id,方法为:

#define IDC_MYBUTTON(N)                 IDC_MYBUTTON0+N

4.在窗口的  INI  方法里生成对话框,方法如下:

   N=5;//自定义数量,可有数据库、配置文件等获得
 CButton* p_MyBut=new CButton[N];
 int i=0;   
 for(i=0;i<N;i++)
 {
 CString ss;
 ss.Format("
我是第%d  个按钮",i+1);

 p_MyBut[i].Create( ss, WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,\
  CRect(30,10+i*40,150,50+i*40), this, IDC_MYBUTTON0+i);//CRect
负责大小和位置
 }

5.运行,可以看到出现了新的5个按钮

6.为每个按钮添加事件,方法很简单,就是打开对话框的类向导,重载  OnCommand()函数,里面有两个参数:

WPARAM wParam, LPARAM lParam,前一个就是按钮的  id,后一个为句柄,我们根据  id  来判断比较方便,我们判断方法如下:

 用一个for循环就可以解决:

int i=0;
 for(i=0;i<N;i++)
 if (wParam==IDC_MYBUTTON0+i) {
  CString ss;
  ss.Format("
你单击了第%d个按钮",i+1);
  MessageBox(ss);
    }

既然能标志到你单击了那个按钮,完成其他的工作也就没问题了。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:csdn

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP