MFC控件使用

对于一般控件,直接声明后调用其Create()方法就可以在视图中创建,如

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一个


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值