首页 > 编程语言 > 详细

MFC-一个很简单的动态创建控件例子

时间:2021-03-08 22:17:57      阅读:25      评论:0      收藏:0      [点我收藏+]

前两天开发工具用到了一个动态创建控件的需求,

写个简单的例子,记录一下。本身例子也比较简单,就不做详细说明了,看不懂百度就好了。

VS2012

int count1 = 0;
void CMFCApplication1Dlg::OnCbnSelchangeCombo1()
{
    // TODO: 在此添加控件通知处理程序代码

    //删除动态控件
    int bun1id1 = 19960;//控件的id
    for (int i=0;i<count1;i++)
    {
        CComboBox* pCombox = (CComboBox*)GetDlgItem(bun1id1);
        delete pCombox;
        bun1id1++;
    }

    int bun1id1_static = 18960;
    for (int i=0;i<count1;i++)
    {
        CStatic* pSta = (CStatic*)GetDlgItem(bun1id1_static);
        delete pSta;
        bun1id1_static++;
    }

    //获得当前选择的数量
    CString enumNameCstr;
    m_combox.GetWindowText(enumNameCstr);
    int num = atoi(enumNameCstr.GetBuffer());
    //动态创建控件
    int bun1id = 19960;//控件的id
    for (int i=0;i<num;i++)
    {
        CComboBox* combox = new CComboBox();
        combox->Create(WS_VISIBLE|WS_CHILD|CBS_DROPDOWNLIST, CRect(100, 80+i*30,300,500+i*300), this, bun1id);
        combox->AddString("1");
        combox->AddString("2");
        combox->AddString("3");
        bun1id++;
        count1++;
    }

    //动态创建控件(模板类型名字)
    int bun1id_static = 18960;
    for (int i=0;i<num;i++)
    {    
        char str[256];
        sprintf_s(str, "这是%d", i+1);

        CStatic* sta = new CStatic();
        sta->Create(str,WS_CHILD|WS_VISIBLE|SS_CENTER, CRect(10,80+i*30,80,200+i*30), this, bun1id_static);

        bun1id_static++;
    }
}



void CMFCApplication1Dlg::OnBnClickedButton1()
{
    // TODO: 在此添加控件通知处理程序代码

    CString enumNameCstr;
    m_combox.GetWindowText(enumNameCstr);
    int num = atoi(enumNameCstr.GetBuffer());
    //读取动态控件
    int bun1id1 = 19960;
    for (int i=0;i<num;i++)
    {
        TCHAR ch1[256];
        GetDlgItem(bun1id1)->GetWindowText(ch1, 256);
        AfxMessageBox(ch1);
        bun1id1++;
    }

}


Caesar卢尚宇
2021年3月8日

技术分享图片

MFC-一个很简单的动态创建控件例子

原文:https://www.cnblogs.com/nxopen2018/p/14502065.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!