zoukankan      html  css  js  c++  java
  • MFC 对话框设计问题(控件的使用)

    1.如何在对话框上添加图片

    利用MFC中的Picture Control控件,步骤如下:

    在资源管理其中添加一个位图文件;

    在对话框中添加一个Picture Control控件,并将该控件Type属性选择为Bitmap;

    随后,在Image属性中选择添加的位图资源ID

    2.如何在对话框中显示表格

    实现类似excel的表格,以供数据显示

    利用List Control控件,步骤如下:

    在对话框中添加一个List Control控件,将其属性View设置为Report(报表形式);

    原文件中添加一个List Control控件对象,并与对话框中List Control控件关联;

    给调用函数InsertColumn该空间添加列表;

    设置列表的样式;

    原代码如下:

    头文件中:CListCtrl m_ListCtrl;

    源文件中:DDX_Control(pDX, IDC_LIST_DATA, m_ListCtrl);

    CRect mRect;
    m_ListCtrl.GetWindowRect(&mRect);     //获取控件矩形区域
    int kuan = mRect.Width();
    m_ListCtrl.InsertColumn(0,_T("序号"),LVCFMT_LEFT,kuan/7,-1);
    m_ListCtrl.InsertColumn(1,_T("姓名"),LVCFMT_CENTER,kuan/7,-1);
    m_ListCtrl.InsertColumn(2,_T("年龄"),LVCFMT_CENTER,kuan/7,-1);
    m_ListCtrl.InsertColumn(3,_T("班级"),LVCFMT_CENTER,kuan/7,-1);
    m_ListCtrl.InsertColumn(4,_T("学号"),LVCFMT_CENTER,kuan/7,-1);
    m_ListCtrl.InsertColumn(5,_T("籍贯"),LVCFMT_CENTER,kuan/7,-1);
    m_ListCtrl.InsertColumn(6,_T("性别"),LVCFMT_CENTER,kuan/7,-1);
    DWORD dwStyle = m_ListCtrl.GetExtendedStyle(); //获取当前扩展样式
    dwStyle |= LVS_EX_FULLROWSELECT; //选中某行使整行高亮(report风格时)
    dwStyle |= LVS_EX_GRIDLINES; //网格线(report风格时)
    dwStyle |= LVS_EX_CHECKBOXES; //item前生成checkbox控件
    m_ListCtrl.SetExtendedStyle(dwStyle); //设置扩展风格

     3.如何设置、获取ComboBox控件当前项

    设置ComboBox当前项:CComboBox::SetCurSel(int)    参数即为选择的项序号,项序号从0开始

    得到当前项序号:CComboBox::GetCurSel()    返回值为当前项序号,int型

    得到当前项文本:CComboBox::GetLBText(nselect,Str)    第一个参数为当前项序号,第二个参数为该项对应的文本

    4.如何设置Static Text控件上的文本

    GetDlgItem(IDC_STATIC_STATE1)->SetWindowText(_T("设置成功"))     GetDlgItem函数中参数为控件ID

    5.如何向ListCtrl控件中写数据

    首先要将ListCtrl控件属性View设置为Report(报表形式)

    注意:ListCtrl中数据均为字符串型,所以显示数字时要涉及到类型转换问题

    将int型转为CString型方法:CString::Format(_T("%d"), int i)     将int型变量i转换为十进制显示的字符串

    此外两个CString是可以直接相加的,这样可以满足列表中数据显示要求,如_T("0")+_T("1")就得到了_T("01")

    m_ListCtrl.InsertItem(int nItem,StrItem);//在第nItem行第一列插入数据,数据为StrItem,返回值为下一行nItem+1
    m_ListCtrl.SetItemText(int nItem, 1, Data1);//在某一行的某一列设置数据,这里在int nItem行第2列(第一列前面几句已经写了)写数据Data1

    m_ListCtrl.SetItemText(int nItem, 2, Data2);//在nRow行第2列(第一列前面几句已经写了)写数据Data1

    6.Button上的字体如何换行

    Button上的字太长了时需要换行,实现如下:

    将Button属性的Multiline设置为true

    再要换行的字前加\n      比如:"神马按钮"写成"神马\n按钮"

    7.删除Listctrl中数据

    全部删除:CListCtrl::DeleteAllItems()

    8.得到ListCtrl列表中的某个数据

    得到nItem行nSubItem列的数据:CListCtrl::GetItemText(int   nItem,   int   nSubItem)    返回值为CString型

    9.ListCtrl  滚轮自动显示到列表最后一行

    CListCtrl::EnsureVisible(int nItem,false);

    即序列号为nItem的行在可见区域的最后一行

  • 相关阅读:
    教材代码完成情况测试P186(课上测试)
    教材代码完成情况测试P171(课上测试)
    团队作业(三):确定分工
    2018-2019-2 20175215 实验二《面向对象程序设计》实验报告
    20175215 2018-2019-2 第七周java课程学习总结
    类定义(课下选做)
    2018-2019 20175234 实验三《敏捷开发与XP实践》实验报告
    20175234 2018-2019-2 个人项目:数字黑洞(三):圣经数
    20175234 数据库MySQL(课下作业)
    20175234 2018-2019-2 《Java程序设计》第九周学习总结
  • 原文地址:https://www.cnblogs.com/Romi/p/2358491.html
Copyright © 2011-2022 走看看