MFC 对话框设计问题(控件的使用)
2012-02-21 15:21
267 查看
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的行在可见区域的最后一行
利用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的行在可见区域的最后一行
相关文章推荐
- 在win7下使用MFC中MSComm控件的问题
- MFC界面控件随对话框大小改变问题求助
- MFC CMFCPropertyGridCtrl控件使用问题:刷新后底部出现黑边
- MFC/VS 2010中对话框控件初始显示模糊,鼠标移动到上面才显示的问题
- 关于点击菜单项或按钮无法弹出对话框的问题(使用了RichEdit控件)
- MFC中使用SetWindowPos GroupBox遮盖内部控件问题解决办法
- [置顶] MFC树形控件CTreeCtrl使用方法、遍历、SetCheck无效、根据名称获取节点、获取选中节点等问题
- vs2008下 MFC-Tab页子对话框中添加ocx控件 引起问题
- MFC对话框使用标签页控件
- MFC中使用串口控件后程序无法打开的问题解决
- MFC练习3:使用对话框与控件
- mfc 对话框 toolBox 中的控件 edit control和slider control 或 spin control 使用并绑定
- VS2012 使用对话框时 工具箱没有控件问题
- MFC中对话框控件的句柄和设备上下文的问题
- VC中在对话框上使用Rich Edit控件相关问题
- CRichEditCtrl系列讲堂1 VC中在对话框上使用Rich Edit控件相关问题
- MFC 使用MsFlexGrid 控件发布后无法在其它机器运行问题解决方案
- VS2010环境下MFC使用DataGrid绑定数据源以及控件注册问题解决
- MFC STATIC,Picture控件使用及无法添加变量的问题
- MFC小程序003------MFC使用WebBrowser组件,在对话框中创建滚动视图,动态创建一个静态文本控件并设置鼠标单击的消息响应