• 树形控件显示数据库数据项


    Step1:创建对话框程序,在stdafx.h中增加头文件afxdb.h(因为需要数据库相关类),然后添加一个新类CUserSet,派生自CRecordset,数据源根据实际数据库配置

    Step2:对话框头文件CMyDialog.h中添加成员变量theUserSet(注意:要添加UserSet.h),并添加成员变量CImageList类型成员变量m_ImageList.

    Step3:对话框面板中拖入一个树形控件,并绑定类变量m_Tree;同时拖入一个Button按钮,响应函数为OnQuery()

    step4:在资源面板中插入三个ICON资源,自行绘制。

    Step5:在BOOL CMyDialog::OnInitDialog()中输入代码:

        m_ImageList.Create(16,16,ILC_COLOR24 | ILC_MASK,0,1);//创建
        m_ImageList.Add(LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON1)));//添加图标资源
        m_ImageList.Add(LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON2)));
        m_ImageList.Add(LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON3)));
        m_Tree.SetImageList(&m_ImageList,TVSIL_NORMAL);//绑定树控件

    Step6:在Button按钮的响应函数(OnQuery())中添加代码

    void CMyDlg::OnQuery() 
    {
        if(theUserSet.IsOpen())
        {
            theUserSet.Close();
        }
        theUserSet.Open();
        
        CString userTreeHeader[3]={"医生","售药员","管理员"};
        HTREEITEM userItem[3];
        for(int i=0;i<3;i++)
        {
            //三个用户根结点;
            userItem[i]=m_Tree.InsertItem(userTreeHeader[i],0,0,TVI_ROOT);
            m_Tree.SetItemData(userItem[i],(DWORD)i);
        }
        HTREEITEM thePoint;
        for(i=0;i<3;i++)
        {
            theUserSet.m_strFilter="UserClassification='"+userTreeHeader[i]+"'";
            theUserSet.Requery();
            for(int j=0;;j++)
            {
                if(theUserSet.IsEOF())
                {
                    break;
                }    
                if(theUserSet.m_UserAccount=="gm") //当前用户
                {
                    HTREEITEM userSpecifics=m_Tree.InsertItem(theUserSet.m_UserAccount+"(当前用户)",2,2,userItem[i]);
                    m_Tree.SetItemData(userSpecifics,(DWORD)j);
                    thePoint=userSpecifics;//标识点
                }
                else
                {
                    HTREEITEM userSpecifics=m_Tree.InsertItem(theUserSet.m_UserAccount,1,1,userItem[i]);
                    m_Tree.SetItemData(userSpecifics,(DWORD)j);
                }
                theUserSet.MoveNext();
            }
        }
        m_Tree.Select(thePoint,TVGN_CARET);
    }

  • 相关阅读:
    group_concat的长度限制
    mb_strlen默认字符集问题
    &符号导致的一个bug
    python面向对象编程系列
    python基础之面向过程编程系列
    RPA流程自动化
    什么是DevOps?
    ansible详解
    saas和paas的区别
    CPT/cpt接口
  • 原文地址:https://www.cnblogs.com/tinaluo/p/7880114.html
Copyright © 2020-2023  润新知