MFC控件使用
2012-03-22 22:31
218 查看
对于一般控件,直接声明后调用其Create()方法就可以在视图中创建,如
CStatic m_Static;
其中的CRect是用来定位及定义大小的.
对于Button,需要响应事件的,就要先在Resource.h当中对资源进行定义,再在View当中声明消息响应函数,在在消息映射中添加
再实现消息函数就可以了.
另外,对于CRect(int l,int t,int r,int b),苦中的参数分别代表(左,上,右,下),左上定义一个点坐标,右下定义一个点坐标
图像列表及列表视图控件:
创建一个CImageList控件和CListCtrl控件:
特别的,对于CListCtrl的列表视图来说,可以添加列的标签:
LV_COLUMN lv;//列结构
lv.mask=LVCF_WIDTH|LVCF_TEXT|LVCF_FMT|LVCF_SUBITEM;
lv.fmt=LVCFMT_CENTER;//对齐方式
lv.cx=75;//列宽
lv.iSubItem=0;//这个是指当前这个ITEM的列索引标识
lv.pszText="Column 0";
m_List.InsertColumn(0,&lv);//第一个参数是指插入在哪里
lv.iSubItem=1;
lv.pszText="Column 1";
m_List.InsertColumn(1,&lv);
lv.iSubItem=2;
lv.pszText="Column 2";
m_List.InsertColumn(2,&lv);
添加一行元素:
LV_ITEM item;
item.mask=LVIF_TEXT|LVIF_IMAGE|LVIF_STATE;
item.state=0;
item.stateMask=0;
item.iImage=1;//图像索引,值为在CImageList当中添加递增顺序的index
item.iItem=1;//说明item所在的行
item.iSubItem=0;//说明item的起始列
item.pszText="Text";
m_List.InsertItem(&item);
m_List.SetItemText(0,1,"SubItem1");
m_List.SetItemText(0,2,"SubItem2");//第一个参数是指iItem,即行索引,第二个参数是指列号索引的值,为几就放到第几列
item.iItem=1;
item.iSubItem=0;
item.pszText="Text2";
m_List.InsertItem(&item);
m_List.SetItemText(1,1,"SubItem3");
m_List.SetItemText(1,2,"SubItem4");
item.iItem=2;
item.iSubItem=0;
item.pszText="Text3";
m_List.InsertItem(&item);
m_List.SetItemText(2,1,"SubItem5");
m_List.SetItemText(2,2,"SubItem6");
要改变样式,可以使用SetWindowLong这个方法
值得注意的是,测试过程当中iSubItem好像没什么用,这个MARK一个
CStatic m_Static;
m_Static.Create("STATIC",WS_CHILD|WS_VISIBLE|SS_CENTER,CRect(20,20,100,40),this,0);
其中的CRect是用来定位及定义大小的.
对于Button,需要响应事件的,就要先在Resource.h当中对资源进行定义,再在View当中声明消息响应函数,在在消息映射中添加
ON_BN_CLICKED(资源名,消息函数名)
再实现消息函数就可以了.
另外,对于CRect(int l,int t,int r,int b),苦中的参数分别代表(左,上,右,下),左上定义一个点坐标,右下定义一个点坐标
图像列表及列表视图控件:
创建一个CImageList控件和CListCtrl控件:
m_Image.Create(32,32,ILC_COLOR,3,4); HICON icon=::LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON1));//IDI_ICON1为一个图标资源标识 m_Image.Add(icon);
m_List.Create(WS_VISIBLE|WS_CHILD|WS_BORDER|LVS_REPORT|LVS_NOSORTHEADER,CRect(20,150,500,400),this,IDC_LISTVIEW); m_List.SetImageList(&m_Image,LVSIL_SMALL);
特别的,对于CListCtrl的列表视图来说,可以添加列的标签:
LV_COLUMN lv;//列结构
lv.mask=LVCF_WIDTH|LVCF_TEXT|LVCF_FMT|LVCF_SUBITEM;
lv.fmt=LVCFMT_CENTER;//对齐方式
lv.cx=75;//列宽
lv.iSubItem=0;//这个是指当前这个ITEM的列索引标识
lv.pszText="Column 0";
m_List.InsertColumn(0,&lv);//第一个参数是指插入在哪里
lv.iSubItem=1;
lv.pszText="Column 1";
m_List.InsertColumn(1,&lv);
lv.iSubItem=2;
lv.pszText="Column 2";
m_List.InsertColumn(2,&lv);
添加一行元素:
LV_ITEM item;
item.mask=LVIF_TEXT|LVIF_IMAGE|LVIF_STATE;
item.state=0;
item.stateMask=0;
item.iImage=1;//图像索引,值为在CImageList当中添加递增顺序的index
item.iItem=1;//说明item所在的行
item.iSubItem=0;//说明item的起始列
item.pszText="Text";
m_List.InsertItem(&item);
m_List.SetItemText(0,1,"SubItem1");
m_List.SetItemText(0,2,"SubItem2");//第一个参数是指iItem,即行索引,第二个参数是指列号索引的值,为几就放到第几列
item.iItem=1;
item.iSubItem=0;
item.pszText="Text2";
m_List.InsertItem(&item);
m_List.SetItemText(1,1,"SubItem3");
m_List.SetItemText(1,2,"SubItem4");
item.iItem=2;
item.iSubItem=0;
item.pszText="Text3";
m_List.InsertItem(&item);
m_List.SetItemText(2,1,"SubItem5");
m_List.SetItemText(2,2,"SubItem6");
要改变样式,可以使用SetWindowLong这个方法
值得注意的是,测试过程当中iSubItem好像没什么用,这个MARK一个
相关文章推荐
- MFC->Edit Control控件基本使用
- MFC中List Control控件的各类使用
- MFC_滑块控件使用
- MFC中ComboBox控件的使用
- VC/MFC之ListCtrl控件使用经验总结
- MFC中ComboBox控件的使用
- VS2010/MFC 入门编程十六(Check Box控件使用)
- MFC控件使用总结——CListCtrl
- 语法高亮编辑控件Scintilla在MFC中的简单使用
- MFC控件:listctrl使用方法总结
- 使用VS2010开发ActiveX(MFC)控件(3)——添加接口及WEB调用
- VC的MFC里面控件的ID使用ID_XXXXX和IDR_XXXXX的区别
- MFC中关于tab控件使用的一点心得
- MFC时间控件CDataTimeCtrl使用
- MFC tab控件使用
- MFC列表控件CListCtr使用方法
- MFC 对话框设计问题(控件的使用)
- MFC 常用控件使用 —— CListCtrl
- MFC 表格控件的使用
- MFC GridControl 控件使用(2)