MFC控件使用说明
- 格式:docx
- 大小:36.99 KB
- 文档页数:3
MFC Treeview控件方法1,用InsertItem 添加节点参数: 文字,图标,父节点返回: HTREEITEM示例: 添加一系列节点HTREEITEM hItem = m_Tree.InsertItem("root",NULL,NULL);///root就是节点的标题int i,j;for (i=0;i<4;i++){HTREEITEM hSubItem = m_Tree.InsertItem("item",NULL,NULL,hItem);for (j=0;j<3;j++){m_Tree.InsertItem("subitem",NULL,NULL,hSubItem);}}InsertItem函数的第一个参数就是设置他的节点标题2.,用ModifyStyle 设置风格参数: 取消的风格,增加的风格示例: 在对话框初始化时设置风格BOOL CMfc1Dlg::OnInitDialog(){//...m_Tree.ModifyStyle(NULL,TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT); }3,用DeleteItem 删除节点4,用.DeleteAllItems 删除全部节点5,.用Expand 展开/收缩节点参数: 节点HTREEITEM,展开/收缩示例:m_Tree.Expand(hItem,TVE_EXPAND);/////////////////////////////////////////////////////////CTreeCtrl的概述cc++vcCTreeCtrl在三种不同情况下创建的方式1、如果要在对话框窗口上创建树形控件,你需要在对话框类中定义一个CTreeCtrl类型的成员变量。
2、如果树形控件是一个子窗口,你可以使用CTreeCtrl::Create()来构建树形空间对象。
MFCCListCtrl控件使用总结整理一、基本操作:1. 创建CListCtrl实例,可以通过对话框资源添加控件或代码创建:```cppCListCtrl m_listCtrl;```2.设置列表样式,例如设置为报表样式:```cppm_listCtrl.Create(WS_VISIBLE , WS_CHILD , LVS_REPORT, CRect(10, 10, 500, 300), this, IDC_LIST_CTRL);```3.设置列表列头:```cppm_listCtrl.InsertColumn(0, _T("序号"), LVCFMT_LEFT, 50);m_listCtrl.InsertColumn(1, _T("姓名"), LVCFMT_LEFT, 100);m_listCtrl.InsertColumn(2, _T("年龄"), LVCFMT_LEFT, 50);```4.添加行数据:```cppint nItemIndex = m_listCtrl.InsertItem(0, _T("1"));m_listCtrl.SetItemText(nItemIndex, 1, _T("张三"));m_listCtrl.SetItemText(nItemIndex, 2, _T("20"));``````cppm_listCtrl.DeleteItem(nItemIndex); // 删除```二、高级操作:1.设置列宽:```cppm_listCtrl.SetColumnWidth(0, LVSCW_AUTOSIZE_USEHEADER);m_listCtrl.SetColumnWidth(1, LVSCW_AUTOSIZE);m_listCtrl.SetColumnWidth(2, LVSCW_AUTOSIZE);```2.设置行高:```cppm_listCtrl.SetItemHeight(0, 50);```3.设置行选中状态:```cppm_listCtrl.SetItemState(0, LVIS_SELECTED, LVIS_SELECTED);```4.设置行背景色:```cppm_listCtrl.SetItemState(0, LVIS_SELECTED , LVIS_FOCUSED, LVIS_SELECTED , LVIS_FOCUSED);m_listCtrl.SetSelectionMark(0);m_listCtrl.SetItemState(0, LVIS_SELECTED, LVIS_SELECTED);```5.设置行图标:```cppm_listCtrl.SetItemImage(nItemIndex, nImageIndex);```6.获取行数和列数:```cppint nItemCount = m_listCtrl.GetItemCount(;int nColumnCount = m_listCtrl.GetHeaderCtrl(->GetItemCount(;```7.获取行数据:```cppCString strItemText = m_listCtrl.GetItemText(nItemIndex, nSubItemIndex);```三、自定义操作:1.列排序:```cpp```2.行拖拽排序:```cppm_listCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT ,LVS_EX_GRIDLINES , LVS_EX_HEADERDRAGDROP);``````cppm_listCtrl.ModifyStyle(0, LVS_EDITLABELS);```4.行点击事件:```cppON_NOTIFY(NM_CLICK, IDC_LIST_CTRL, OnLButtonDown)```5.自定义绘制:```cppON_WM_DRAWITEM```四、注意事项和优化建议:1. 大量数据时,慎用SetRedraw方法来控制刷新。
MFC中ListControl控件的使用以下未经说明,listctrl默认view 风格为report1. CListCtrl 风格LVS_ICON: 为每个item显示大图标LVS_SMALLICON: 为每个item显示小图标LVS_LIST: 显示一列带有小图标的itemLVS_REPORT: 显示item详细资料直观的理解:windows资源管理器,“查看”标签下的“大图标,小图标,列表,详细资料”2. 设置listctrl 风格及扩展风格LONG lStyle;lStyle = GetWindowLong(m_list.m_hWnd, GWL_STYLE);//获取当前窗口stylelStyle &= ~LVS_TYPEMASK; //清除显示方式位lStyle |= LVS_REPORT; //设置styleSetWindowLong(m_list.m_hWnd, GWL_STYLE, lStyle);//设置styleDWORD dwStyle = m_list.GetExtendedStyle();dwStyle |= LVS_EX_FULLROWSELECT;//选中某行使整行高亮(只适用与report风格的listctrl)dwStyle |= LVS_EX_GRIDLINES;//网格线(只适用与report风格的listctrl)dwStyle |= LVS_EX_CHECKBOXES;//item前生成checkbox控件m_list.SetExtendedStyle(dwStyle); //设置扩展风格注:listview的style请查阅msdn/library/default.asp?url=/libr ary/en-us/wceshellui5/html/wce50lrflistviewstyles.asp3. 插入数据m_list.InsertColumn( 0, "ID", LVCFMT_LEFT, 40 );//插入列m_list.InsertColumn( 1, "NAME", LVCFMT_LEFT, 50 );int nRow = m_list.InsertItem(0, “11”);//插入行m_list.SetItemText(nRow, 1, “jacky”);//设置数据4. 一直选中item选中style中的Show selection always,或者在上面第2点中设置LVS_SHOWSELALWAYS5. 选中和取消选中一行int nIndex = 0;//选中m_list.SetItemState(nIndex,LVIS_SELECTED|LVIS_FOCUSED,LVIS_SELECTED|LVIS_FOCUSED);//取消选中m_list.SetItemState(nIndex, 0, LVIS_SELECTED|LVIS_FOCUSED);6. 得到listctrl中所有行的checkbox的状态m_list.SetExtendedStyle(LVS_EX_CHECKBOXES);CString str;for(int i=0; i<m_list.GetItemCount(); i++){if( m_list.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED || m_list.GetCheck(i)){str.Format(_T("第%d行的checkbox为选中状态"), i);AfxMessageBox(str);}}7. 得到listctrl中所有选中行的序号方法一:CString str;for(int i=0; i<m_list.GetItemCount(); i++){if( m_list.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED ){str.Format(_T("选中了第%d行"), i);AfxMessageBox(str);}}方法二:POSITION pos = m_list.GetFirstSelectedItemPosition();if (pos == NULL)TRACE0("No items were selected!/n");else{while (pos){int nItem = m_list.GetNextSelectedItem(pos); TRACE1("Item %d was selected!/n", nItem);// you could do your own processing on nItem here}}8. 得到item的信息TCHAR szBuf[1024];LVITEM lvi;lvi.iItem = nItemIndex;lvi.iSubItem = 0;lvi.mask = LVIF_TEXT;lvi.pszText = szBuf;hTextMax = 1024;m_list.GetItem(&lvi);关于得到设置item的状态,还可以参考msdn文章Q173242: Use Masks to Set/Get Item States in CListCtrl /kb/173242/en-us9. 得到listctrl的所有列的header字符串内容LVCOLUMN lvcol;char str[256];int nColNum;CString strColumnName[4];//假如有4列nColNum = 0;lvcol.mask = LVCF_TEXT;lvcol.pszText = str;hTextMax = 256;while(m_list.GetColumn(nColNum, &lvcol)){strColumnName[nColNum] = lvcol.pszText;nColNum++;}10. 使listctrl中一项可见,即滚动滚动条m_list.EnsureVisible(i, FALSE);11. 得到listctrl列数int nHeadNum = m_list.GetHeaderCtrl()->GetItemCount();12. 删除所有列方法一:while ( m_list.DeleteColumn (0))因为你删除了第一列后,后面的列会依次向上移动。
mfc list control简单使用说明MFC(Microsoft Foundation Classes)是Microsoft提供的一个C++面向对象的应用程序框架,用于开发Windows应用程序。
MFC的List Control是其中一个常用的控件,用于展示和管理数据列表。
使用MFC List Control之前,需要先创建一个对话框或视图类,并在资源编辑器中添加一个List Control控件。
我们可以通过以下几个步骤简单地使用MFC List Control控件:1. 设置列标头:使用InsertColumn函数,我们可以设置List Control的列标头。
例如,如果我们想要一个包含“姓名”和“年龄”的列表,可以这样做:```cppm_listCtrl.InsertColumn(0, _T("姓名"), LVCFMT_LEFT, 100);m_listCtrl.InsertColumn(1, _T("年龄"), LVCFMT_LEFT, 100);```2. 添加数据项:使用InsertItem函数,我们可以在List Control中添加数据项。
每个数据项将代表列表中一行的数据。
例如,我们可以这样添加一个名为“张三”,年龄为25的数据项:```cppint nIndex = m_listCtrl.InsertItem(0, _T("张三"));m_listCtrl.SetItemText(nIndex, 1, _T("25"));```3. 更改数据项内容:使用SetItemText函数,我们可以修改List Control中数据项的内容。
例如,如果我们想修改“张三”的年龄为30,可以使用以下代码:```cppm_listCtrl.SetItemText(nIndex, 1, _T("30"));```4. 删除数据项:使用DeleteItem函数,我们可以删除List Control中的数据项。
mfc使用手册MFC(Microsoft Foundation Class Library)是微软提供的一个类库,用于简化Windows应用程序的开发过程。
以下是MFC使用手册的简要介绍:1. 简介:MFC是一个基于C++的类库,它提供了许多用于构建Windows应用程序的类和函数。
通过使用MFC,开发人员可以快速地构建具有一致外观和感觉的应用程序,并利用Windows平台提供的各种功能。
2. 安装和配置:在开始使用MFC之前,您需要安装Microsoft Visual Studio并确保安装了MFC开发工作负载。
安装完成后,您需要创建一个新的MFC项目或打开一个现有的MFC项目。
3. 创建MFC应用程序:要创建一个新的MFC应用程序,您需要使用Microsoft Visual Studio的向导。
选择“File”菜单中的“New”选项,然后选择“Project”。
在弹出的对话框中,选择“MFC Application”并按照向导的提示完成应用程序的创建过程。
4. MFC类库:MFC提供了许多用于构建应用程序的类和函数。
以下是一些常用的MFC类:CWinApp:应用程序对象类,用于管理应用程序级别的操作,例如初始化应用程序和退出应用程序。
CWnd:窗口类,用于管理窗口的各种操作,例如创建窗口、处理消息和绘制窗口。
CDocument:文档类,用于管理应用程序中的文档数据。
CView:视图类,用于管理应用程序中的视图,例如显示文档数据和与用户交互。
5. MFC消息处理:MFC使用消息传递机制来处理用户与应用程序的交互。
每个窗口和控件都处理一组预定义的消息,例如鼠标点击、键盘输入和窗口大小改变等。
通过覆盖类中的虚函数,您可以定义应用程序如何响应这些消息。
6. MFC对话框和控件:MFC提供了许多内置的对话框和控件,例如按钮、文本框和列表框等。
您可以使用对话框编辑器来创建对话框,并将控件拖放到对话框中。
MFC树形控件(CTreeCtrl)用法树形控件可以用于树形的结构,其中有一个根接点(Root)然后下面有许多子结点,而每个子结点上有允许有一个或多个或没有子结点。
MFC中使用CTreeCtrl类来封装树形控件的各种操作。
通过调用BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );创建一个窗口,dwStyle中可以使用以下一些树形控件的专用风格:TVS_HASLINES 在父/子结点之间绘制连线TVS_LINESATROOT 在根/子结点之间绘制连线TVS_HASBUTTONS 在每一个结点前添加一个按钮,用于表示当前结点是否已被展开TVS_EDITLABELS 结点的显示字符可以被编辑TVS_SHOWSELALWAYS 在失去焦点时也显示当前选中的结点TVS_DISABLEDRAGDROP 不允许Drag/DropTVS_NOTOOLTIPS 不使用ToolTip显示结点的显示字符在树形控件中每一个结点都有一个句柄(HTREEITEM),同时添加结点时必须提供的参数是该结点的父结点句柄,(其中根Root结点只有一个,既不可以添加也不可以删除)利用HTREEITEM InsertItem( LPCTSTR lpszItem, HTREEITEM hParent = TVI_ROOT, HTREEITEM hInsertAf ter = TVI_LAST );可以添加一个结点,pszItem为显示的字符,hParent代表父结点的句柄,当前添加的结点会排在hInsertAf ter表示的结点的后面,返回值为当前创建的结点的句柄。
下面的代码会建立一个如下形式的树形结构:+--- Parent1+--- Child1_1+--- Child1_2+--- Child1_3+--- Parent2+--- Parent3/*假设m_tree为一个CTreeCtrl对象,而且该窗口已经创建*/HTREEITEM hItem,hSubItem;hItem = m_tree.InsertItem("Parent1",TVI_ROOT);在根结点上添加Parent1hSubItem = m_tree.InsertItem("Child1_1",hItem);//在Parent1上添加一个子结点hSubItem = m_tree.InsertItem("Child1_2",hItem,hSubItem);//在Parent1上添加一个子结点,排在Child1_1后面hSubItem = m_tree.InsertItem("Child1_3",hItem,hSubItem);hItem = m_tree.InsertItem("Parent2",TVI_ROOT,hItem);hItem = m_tree.InsertItem("Parent3",TVI_ROOT,hItem);如果你希望在每个结点前添加一个小图标,就必需先调用CImageList* SetImageList( CImageList * pImageList, int nImageListType );指明当前所使用的ImageList,nImageListType为TVSIL_NORMAL。
MFC 常用整理MFC USUAL TRIM艾德温*范克里夫学生所在学院:信息科学与工程学院学生所在班级:软件2班学生姓名:王海波学生学号:110120010061指导教师:王海波教务处2014年 7 月目录MFC 常用知识第一回:整体感知第二回: MFC是什么第三回:开始用MFC创建窗体以及MFC的结构第四回: VS2010界面组织MFC 常用控件写法常用控件介绍常用控件使用按钮的使用编辑框的使用选项卡的使用报表的使用MFC 常用知识第一回:想写一个像上图(大二写的的吧。
囧)的窗体程序,我们就可以用简单的MFC.怎么用MFC做出上图的窗体?1 如下图用vs2010的可视化工具栏拖控件,很简单2 然后双击某个按钮,vs2010会自动弹出函数,我们就可以在函数中填写代码。
之后,每当你按那个按钮一次,你在函数中写的代码就会执行一次。
3 显然这一点功能远远不够,更多请看下回。
第二回:回顾:第一回讲的就是一个窗体初级的原型。
接下来说说更深一点的东西。
MFC 是什么?(上面的窗体等是哪里来的?)定义:MFC: Microsoft function class (微软功能类)理解:MFC 就是许许多多的类。
跟我们有什么联系:我们利用MFC中的许多类作为工具来开发出窗体。
更浅显的理解:MFC就是工具,让我们能快速开发的工具。
之前穆云峰老师的windows编程课记着么,最开始窗体就是那么一句句代码手动写出来的,特繁琐,所以微软就写了功能封装类,把一些重复的工作写成类,之后写窗体就更方便了。
第三回:一:开始用MFC 写窗体123其他不知道的全点下一步。
最后一步:二:怎么利用MFC三个类: CtestApp CtestDlg(这两个类是自动生成的) CDialogEx (MFC的类)1 CtestApp 是用来封装主函数Main的。
并且定义了一个全局变量TheApp。
2 CDialogEx 封装了创建窗体的基本代码。
mfc clistctrl 使用MFC(Microsoft Foundation Classes)是一套由Microsoft开发的C++类库,用于快速开发Windows应用程序。
CListCtrl是MFC中的一个常用控件,用于展示列表数据。
本文将介绍如何使用MFC的CListCtrl来展示和操作数据列表。
一、CListCtrl的基本使用在使用MFC的CListCtrl之前,需要先在Dlg中添加一个CListCtrl 控件。
可以通过拖拽的方式将其添加到Dlg,并设置好控件的相关属性(如ID、位置、大小等)。
在初始化过程中,需要对CListCtrl进行一些基本设置。
可以通过以下代码实现:```cpp// 声明一个指针指向CListCtrl对象CListCtrl* pListCtrl = (CListCtrl*)GetDlgItem(IDC_LIST1);// 设置CListCtrl的风格pListCtrl->SetExtendedStyle(LVS_EX_FULLROWSELECT |LVS_EX_GRIDLINES);// 添加表头pListCtrl->InsertColumn(0, _T("列名称1"), LVCFMT_LEFT, 150);pListCtrl->InsertColumn(1, _T("列名称2"), LVCFMT_LEFT, 150);pListCtrl->InsertColumn(2, _T("列名称3"), LVCFMT_LEFT, 150);```通过上述代码,我们完成了CListCtrl的基本设置,包括设置风格、添加表头等。
二、添加数据接下来,我们需要向CListCtrl中添加数据。
可以通过以下代码实现:```cpp// 添加第一行数据pListCtrl->InsertItem(0, _T("数据1"));pListCtrl->SetItemText(0, 1, _T("数据2"));pListCtrl->SetItemText(0, 2, _T("数据3"));// 添加第二行数据pListCtrl->InsertItem(1, _T("数据4"));pListCtrl->SetItemText(1, 1, _T("数据5"));pListCtrl->SetItemText(1, 2, _T("数据6"));```通过上述代码,我们在CListCtrl中成功添加了两行数据。
MFC常用控件使用MFC(Microsoft Foundation Classes)是一个用于Windows平台的C++类库,用于开发基于Windows的图形用户界面应用程序。
MFC提供了许多常用的控件,开发人员可以使用这些控件来构建各种类型的Windows应用程序。
下面是一些常用的MFC控件和它们的使用方法:1. Button控件:Button控件用于创建按钮。
创建Button控件的方法是通过调用CButton类的Create函数,指定按钮的风格、位置和大小等参数。
之后,可以使用CButton类的成员函数来设置按钮的文本、图片和事件处理程序等。
3. List Box控件:List Box控件用于创建列表框,用于显示列表项。
创建List Box控件的方法是通过调用CListBox类的Create函数,指定列表框的风格、位置和大小等参数。
之后,可以使用CListBox类的成员函数来添加、删除和获取列表项等。
5. Static控件:Static控件用于显示静态文本。
创建Static控件的方法是通过调用CStatic类的Create函数,指定静态文本的风格、位置和大小等参数。
之后,可以使用CStatic类的成员函数来设置静态文本的内容、字体和颜色等。
6. Slider控件:Slider控件用于创建滑动条。
创建Slider控件的方法是通过调用CSliderCtrl类的Create函数,指定滑动条的风格、位置和大小等参数。
之后,可以使用CSliderCtrl类的成员函数来设置滑动条的范围、当前位置和事件处理程序等。
7. Progress控件:Progress控件用于显示进度条。
创建Progress 控件的方法是通过调用CProgressCtrl类的Create函数,指定进度条的风格、位置和大小等参数。
之后,可以使用CProgressCtrl类的成员函数来设置进度条的范围、当前位置和事件处理程序等。
8. Tree Control控件:Tree Control控件用于显示树形结构。
VC6.0⾥⾯MFC控件CListCtrl的⼀些常⽤⽤法CListCtrl 使⽤技巧以下未经说明,listctrl默认view 风格为report相关类及处理函数MFC:CListCtrl类SDK:以 “ListView_”开头的⼀些宏。
如 ListView_InsertColumn1. CListCtrl 风格LVS_ICON: 为每个item显⽰⼤图标LVS_SMALLICON: 为每个item显⽰⼩图标LVS_LIST: 显⽰⼀列带有⼩图标的itemLVS_REPORT: 显⽰item详细资料直观的理解:windows资源管理器,“查看”标签下的“⼤图标,⼩图标,列表,详细资料2. 设置listctrl 风格及扩展风格3. 插⼊数据m_list.InsertColumn( 0, "ID", LVCFMT_LEFT, 40 );//插⼊列m_list.InsertColumn( 1, "NAME", LVCFMT_LEFT, 50 );int nRow = m_list.InsertItem(0, “11”);//插⼊⾏m_list.SetItemText(nRow, 1, “jacky”);//设置数据4. ⼀直选中item选中style中的Show selection always,或者在上⾯第2点中设置LVS_SHOWSELALWAYS5. 选中和取消选中⼀⾏int nIndex = 0;//选中m_list.SetItemState(nIndex, LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED);//取消选中m_list.SetItemState(nIndex, 0, LVIS_SELECTED|LVIS_FOCUSED);6. 得到listctrl中所有⾏的checkbox的状态m_list.SetExtendedStyle(LVS_EX_CHECKBOXES);CString str;for(int i=0; i {if( m_list.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED || m_list.GetCheck(i)){str.Format(_T("第%d⾏的checkbox为选中状态"), i);AfxMessageBox(str);}}7. 得到listctrl中所有选中⾏的序号⽅法⼀:CString str;for(int i=0; i {if( m_list.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED ) {str.Format(_T("选中了第%d⾏"), i);nbsp; AfxMessageBox(str);}}⽅法⼆:POSITION pos = m_list.GetFirstSelectedItemPosition();if (pos == NULL)TRACE0("No items were selected!\n");else{while (pos){int nItem = m_list.GetNextSelectedItem(pos);TRACE1("Item %d was selected!\n", nItem);// you could do your own processing on nItem here}}8. 得到item的信息TCHAR szBuf[1024];LVITEM lvi;lvi.iItem = nItemIndex;lvi.iSubItem = 0;lvi.mask = LVIF_TEXT;lvi.pszText = szBuf;hTextMax = 1024;m_list.GetItem(&lvi);9. 得到listctrl的所有列的header字符串内容LVCOLUMN lvcol;char str[256];int nColNum;CString strColumnName[4];//假如有4列nColNum = 0;lvcol.mask = LVCF_TEXT;lvcol.pszText = str;hTextMax = 256;while(m_list.GetColumn(nColNum, &lvcol)){strColumnName[nColNum] = lvcol.pszText;nColNum++;}10. 使listctrl中⼀项可见,即滚动滚动条m_list.EnsureVisible(i, FALSE);11. 得到listctrl列数int nHeadNum = m_list.GetHeaderCtrl()->GetItemCount();12. 删除所有列⽅法⼀:while ( m_list.DeleteColumn (0))因为你删除了第⼀列后,后⾯的列会依次向上移动。
目录1引言 (1)1.1目的 (1)1.2参考资料 (1)2GRID控件介绍 (1)2.1功能介绍 (1)2.2框架介绍 (2)2.3主要类介绍 (4)2.3.1CGridCtrl类 (4)2.3.2CGridCellCheck类 (5)2.3.3CGridCellCombo类 (7)2.4控件类CG RID C TRL常用函数说明 (10)2.4.1行和列的设置 (10)2.4.2单元格信息设置 (12)2.4.3控件操作 (15)2.4.4外观和特征设置 (20)2.4.5颜色设置 (23)2.4.6控件消息介绍 (26)3实例制做 (27)3.1实例图片 (27)3.2实例制做过程介绍 (27)3.2.1新建项目 (27)3.2.2初使化GridCtrl控件 (28)3.2.3设置固定行和列 (30)3.2.4向单元格插入图片 (31)3.2.5设置CheckBox列 (32)3.2.6设置ComboBox列 (33)3.2.7设置行背景颜色和列背景颜色 (34)3.2.8添加消息处理 (35)4实例以外的思考 (36)1 引言1.1 目的本文记录了作者在学习了解并使用GridCtrl的过程中的心得体会,希望能够对今后学习使用GridCtrl控件的其他同事有所帮助,使其更快上手。
1.2 参考资料1)CGridCtrl学习指南网址:/blog/static/21769242200822911559438/ 2)CGridCtrl使用详解网址:/incwar/archive/2009/01/17/3807283.aspx3)CGridCtrl源代码一份。
需要的同事,可以OA上发邮件给我。
4)作者亲手制做的对于CGridCtrl的使用实例:GridCtrlTest。
需要的同事,可以OA上发邮件给我。
2 Grid控件介绍2.1 功能介绍GridControl控件是一款非常优秀的网格控件,在VC平台上的用途非常广泛也非常灵活。
使用Windows标准控件MFC中控件是很重要的一部分。
我们在前面曾提到过,控件是一些行为标准化了的窗口,一般用于对话框或其它窗口中充当与用户交互的元素。
在Visual C++中,可以使用的控件分成三类:(1) Windows标准控件Windows标准控件由Windows操作系统提供,在Windows 95中还提供了一些新增的控件。
所有这些控件对象都是可编程的,我们可以使用Visual C++提供的对话框编辑器把它们添加到对话框中。
Microsoft基础类库(MFC)提供了封装这些控件的类,它们列于表6.1。
表6.1 Windows标准控件续表6.1前面提到过,在MFC中,类CWnd是所有窗口类的基类,很自然的,它也是所有控件类的基类。
Windows标准控件在以下环境下提供:∙Windows 95∙Windows NT 3.51及以后版本∙Win32s 1.3∙注意:∙Visual C++ 4.2及以后版本不再支持Win32s。
(2) ActiveX控件ActiveX控件可用于对话框中,也可用于HTML文档中。
这种控件过去被称为OLE 控件。
本书将在专门的章节中来讲述关于ActiveX控件的知识。
这里仅指出ActiveX控件使用了与标准控件完全不同的接口和实现方法。
(3) 其它MFC控件类除了Windows标准控件和自己编写的或者来自于第三方软件开发商的ActiveX 控件以外,MFC还提供了另外三种控件,它们由下面的三个类进行封装:∙类CBitmapButton用于创建以位图作为标签的按钮,位图按钮最多可以包括四个位图图片,分别代表按钮的四种不同状态。
∙类CCheckListBox用于创建选择列表框,这种列表框中的每一项前面有一个复选框,以决定该项是否被选中。
∙类CDragListBox用于创建一种特殊的列表框,这种列表框允许用户移动列表项。
在本章我们仅讲述第一类控件,即Windows标准控件。
一:syslink controls超链接控件系统环境:Windows 7软件环境:Visual Studio 2008 SP1本次目的:实现Syslink Control超链接的效果我们知道在VS2008中,VC里面多了syslink controls,command 、split buttons 和network address controls。
对于Syslink Control的使用,将在此介绍。
目前该控件支持带HREF和ID的锚定标记<a>,MSDN如下说明:An HREF may be of any protocol, such as http, ftp, mailto, and so on. An ID is an optional name unique within a SysLink control and associated with an individual link. Links are also assigned a zero-based index according to their position within the string. This index is used to access a link.首先:建立一个对话框工程,添加一个Syslink Control控件;然后,为控件添加CLinkCtrl类的变量,这里名称为m_Link。
在对话框初始化函数OnInitDialog()里面添加以下代码:[cpp]view plaincopy1.m_Link.SetWindowText(_T("欢迎光临<a href="/" mce_href="/""/akof1314/">无幻博客</a>"));上面代码中的格式要注意,记得转义字符的使用。
mfc 控件顺序-回复【MFC控件顺序】MFC(Microsoft Foundation Classes)是微软开发的一套面向对象的C++图形用户界面(GUI)应用程序开发框架。
作为一种强大的工具,MFC 框架提供了丰富的控件供开发人员使用。
掌握MFC控件的使用顺序非常重要,本文将一步一步回答关于MFC控件顺序的问题。
第一步:创建MFC应用程序工程在开始介绍MFC控件顺序之前,首先需要创建一个MFC应用程序工程。
打开Visual Studio,选择“文件”->“新建”->“项目”,在弹出的对话框中选择“Visual C++”->“MFC”->“MFC 应用程序”,并设置好工程的名称和位置。
点击“确定”完成工程的创建。
第二步:设计对话框在MFC应用程序中,用户界面是通过对话框来构建的。
对话框可以包含各种控件,如按钮、文本框、列表框等。
在工程创建完成后,可以在资源视图中找到对话框(通常命名为“Dialog”)。
双击对话框,将进入对话框的设计模式。
第三步:选择和放置控件在对话框设计模式中,可以通过工具箱来选择和放置控件。
工具箱位于Visual Studio的左侧,默认展开。
在工具箱中,可以找到各种常用的MFC 控件,如按钮、文本框、列表框等。
选择一个控件后,可以鼠标点击对话框的空白区域放置该控件。
第四步:布局和调整控件位置在放置控件后,可能需要进行布局和调整控件的位置。
可以使用鼠标拖动控件到期望的位置,或者通过属性视图中的“位置”和“大小”属性来调整控件的位置和大小。
同时,还可以使用对齐和相对位置等工具来调整多个控件之间的相对位置关系。
第五步:设置控件属性在布局和调整控件位置后,可能需要设置控件的属性。
每个控件都有一系列的属性可以设置,比如按钮的文本内容、文本框的初始值等。
可以通过属性视图来设置控件的属性。
选中一个控件后,在属性视图中找到该控件对应的属性进行设置。
第六步:添加消息响应函数控件是用户界面的一部分,而用户与界面的交互往往需要触发相应的事件。
mfc中clistctrl操作MFC中CListCtrl操作一、简介MFC(Microsoft Foundation Classes)是微软公司提供的一组C++类库,用于开发Windows应用程序。
CListCtrl是MFC中的一个控件类,用于显示列表数据。
本文将介绍如何在MFC中使用CListCtrl进行数据的增删改查操作。
二、创建CListCtrl控件在MFC应用程序中,可以通过拖拽方式或代码方式创建CListCtrl 控件。
拖拽方式是将CListCtrl控件拖拽到对话框上,然后在属性窗口中进行相应设置;代码方式是在对话框类的头文件中添加成员变量,并在OnInitDialog函数中进行初始化。
三、设置列表风格和列标题在CListCtrl控件创建完成后,需要设置列表的风格和列标题。
可以使用SetExtendedStyle函数设置风格,常用的风格包括网格线、全行选中和显示图标等。
使用InsertColumn函数添加列标题,可以设置标题文本和宽度等属性。
四、添加列表项和子项使用InsertItem函数可以添加列表项,可以设置项文本和图标等属性。
使用SetItemT ext函数可以设置子项文本。
可以通过循环添加多个列表项和子项。
五、获取和修改列表项和子项的值使用GetItemText函数可以获取列表项和子项的文本值。
使用SetItemText函数可以修改列表项和子项的文本值。
可以通过循环遍历列表项和子项来获取和修改多个值。
六、删除列表项和子项使用DeleteItem函数可以删除列表项,可以通过传入列表项的索引来删除指定的项。
使用DeleteAllItems函数可以删除所有列表项。
七、排序列表项可以通过调用SortItems函数对列表项进行排序。
需要为SortItems函数提供一个比较函数,用于指定排序规则。
八、其他操作除了上述的基本操作外,CListCtrl还提供了其他常用的操作功能,例如设置列表项的图标、获取选中项的索引、设置行高等。
MFC控件使用说明
MFC(Microsoft Foundation Class)是一套面向C++开发的框架,
用于快速开发图形用户界面(GUI)应用程序。
MFC提供了一套丰富的控
件(Controls),用于实现各种功能和交互效果。
本文将介绍一些常用的MFC控件的使用说明。
1. Button 控件:Button控件用于显示一个按钮,用户点击按钮时
会触发相应的事件处理函数。
使用方式如下:
-在对话框资源中添加一个按钮控件,并为其设置ID号。
- 在对话框类的变量中声明按钮控件的成员变量,使用CButton类型。
- 在OnInitDialog函数中使用GetDlgItem函数获取按钮控件的指针,并使用它调用相应的函数,如SetWindowText设置按钮的文本内容。
3. List Box 控件:List Box控件用于显示一个列表,用户可以选
择其中的项。
使用方式如下:
-在对话框资源中添加一个列表框控件,并为其设置ID号。
- 在对话框类的变量中声明列表框控件的成员变量,使用CListBox
类型。
- 在OnInitDialog函数中使用GetDlgItem函数获取列表框控件的指针,并使用它调用相应的函数,如AddString添加项,SetCurSel设置选
中项。
-在对话框资源中添加一个组合框控件,并为其设置ID号。
- 在OnInitDialog函数中使用GetDlgItem函数获取组合框控件的指针,并使用它调用相应的函数,如AddString添加项,SetCurSel设置选
中项。
5. Check Box 控件:Check Box控件用于显示一个复选框,用户可
以选中或取消选中。
-在对话框资源中添加一个复选框控件,并为其设置ID号。
- 在对话框类的变量中声明复选框控件的成员变量,使用CButton类型。
- 在OnInitDialog函数中使用GetDlgItem函数获取复选框控件的指针,并使用它调用相应的函数,如SetCheck设置选中状态。
6. Radio Button 控件:Radio Button控件用于显示一组互斥的选项,用户可以选择其中的一个。
使用方式类似Check Box控件。
7. Slider 控件:Slider控件用于显示一个滑块,用户可以通过滑
动滑块来改变数值。
使用方式如下:
-在对话框资源中添加一个滑块控件,并为其设置ID号。
- 在对话框类的变量中声明滑块控件的成员变量,使用CSliderCtrl
类型。
- 在OnInitDialog函数中使用GetDlgItem函数获取滑块控件的指针,并使用它调用相应的函数,如SetRange设置滑块的取值范围,SetPos设
置滑块的位置。
上述介绍了一些常用的MFC控件的使用方式,但还有很多其他的控件
可以使用,例如进度条、图片框、静态文本等。
在使用这些控件的过程中,
还可以通过设置控件的样式和属性,以及添加事件处理函数,实现更复杂的功能和交互效果。
通过学习和掌握MFC控件的使用,可以大大提高GUI 应用程序的开发效率和用户体验。