VS2010控件缩写
- 格式:doc
- 大小:15.50 KB
- 文档页数:2
VS2010MFC编程入门之三十三(常用控件:标签控件TabControl 下)标签控件知识的上半部分,这里开始下半部分。
标签控件的创建MFC为标签控件的操作提供了CTabCtrl类。
与之前的控件类似,创建标签控件可以在对话框模板中直接拖入Tab Control,也可以使用CTabCtrl类的Create成员函数创建。
Create函数的原型如下:virtual BOOL Create(DWORD dwStyle,const RECT&rect,CWnd* pParentWnd,UINT nID);参数dwStyle为标签控件的风格,rect为标签控件的位置和大小,pParentWnd为指向标签控件父窗口的指针,nID指定标签控件的ID。
这里还是要具体说下dwStyle,下面列出了几种主要的控件风格:TCS_BUTTONS:标签(控件上部用来选择标签页的位置)外观为按钮风格,且整个控件周围没有边框。
TCS_FIXEDWIDTH :所有标签具有相同的宽度。
TCS_MULTILINE:标签以多行显示,如果需要,可以显示所有标签。
TCS_SINGLELINE:只显示一行标签,用户可以滚动着看其他标签。
TCS_TABS:标签以普通标签样式显示,且整个控件周围有边框。
如果想了解标签控件的所有风格,可以查阅MSDN。
CTabCtrl类的主要成员函数intGetCurSel( ) const;获取标签控件中当前选择标签的索引。
如果成功则返回选择标签的索引,否则返回-1。
BOOL GetItem(intnItem,TCITEM* pTabCtrlItem) const;获取标签控件中某个标签的信息。
参数nItem为标签索引,pTabCtrlItem为指向TCITEM结构体的指针,用来接收标签信息。
若获取成功返回TRUE,否则返回FALSE。
intGetItemCount( ) const;获取标签控件中标签的数量。
在界面上成组地显示含有多个数据项的数据集,是列表控件的主要用途。
如下图所示,Windows资源管理器中文件列表的显示就是列表控件的一个典型应用。
从数据显示的角度看,列表控件的功能已经比较强大了(支持大图标、小图标、列表、详细资料等多种显示方式;支持排序、查找、定位、增删等)。
但美中不足的是,它不支持数据项的编辑功能。
在很多的实际应用中,需要在显示数据的同时,允许用户―就地‖对某些数据项进行修改。
例如,在Windows资源管理器中,我们可以在浏览文件夹的同时修改其中任何一个文件的名字。
这主要得益于Windows资源管理器中所使用的列表控件支持字段编辑功能。
否则,简单的文件名修改也会变成一件很麻烦的事情。
因此,标准的列表控件只适合用于数据集的显示,而具有数据编辑功能的列表控件却可以在更广的范围里得到应用。
本文重点介绍其实现过程。
1.基本原理在列表控件上实现可编辑功能的原理非常简单,借助一个编辑框控件即可达到目的。
具体步骤如下:①从 CListCtrl派生一个子类,并拦截某个意味着进入编辑状态的消息,获取需要编辑的数据项的相关信息。
所拦截的消息通常选择鼠标消息(例如双击),这样更容易确定数据项在列表控件中的位置(行号、列号)及其所占的区域。
②将一个编辑框控件移动到待编辑数据项所在的区域上,装入待编辑的数据并显示出来,供用户进行修改。
③编辑结束后将修改后的数据返回给列表控件,让其在对应的子项上显示新的数据。
2.实现过程1)在VC 6.0中,新建一个基于对话框的项目,名称:Exam02。
2)编辑对话框资源,删除IDOK 按钮和静态标签;保留IDCANCEL按钮,将其标题改为―退出‖;添加一个列表控件,将其显示风格改为report。
利用类向导为列表控件添加一个关联变量m_list(Type:CListCtrl)。
在CExam02Dlg::OnInitDialog函数中添加如下代码:m_list.InsertColumn(0,_T("1"),LVCFMT_LEFT,100);m_list.InsertColumn(1,_T("2"),LVCFMT_LEFT,100);m_list.InsertColumn(2,_T("3"),LVCFMT_LEFT,100);m_list.InsertColumn(3,_T("4"),LVCFMT_LEFT,100);m_list.InsertItem(0,_T("123"));m_list.SetItemText(0,1,_T("c"));m_list.SetItemText(0,2,_T("d"));m_list.SetItemText(0,3,_T("e"));m_list.InsertItem(1,_T("456"));m_list.SetItemText(1,1,_T("f"));m_list.SetItemText(1,2,_T("g"));m_list.SetItemText(1,3,_T("h"));m_list.InsertItem(2,_T("789"));m_list.SetItemText(2,1,_T("i"));m_list.SetItemText(2,2,_T("j"));m_list.SetItemText(2,3,_T("k"));m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT );如果在此时运行程序,则显示一个普通的列表控件,不具备编辑功能(如下图所示)。
VS2010/MFC编程入门之二十一(常用控件:编辑框EditControl)了解了静态文本框,这里要讲的编辑框(Edit Control)同样是一种很常用的控件,我们可以在编辑框中输入并编辑文本。
在前面加法计算器的例子中已经演示了编辑框的基本应用。
下面具体讲解编辑框的使用。
编辑框的通知消息编辑框发生某些事件时会向父窗口发送通知消息。
在对话框模板中的编辑框上点右键,选择“Add Event Handler”,为编辑框添加消息处理函数时,可以在“Message type”列表中看到这些消息。
下面简单介绍编辑框的部分通知消息。
EN_CHANGE:编辑框的内容被用户改变了,与EN_UPDATE 不同,该消息是在编辑框显示的正文被刷新后才发出的EN_ERRSPACE:编辑框控件无法申请足够的动态内存来满足需要EN_HSCROLL:用户在水平滚动条上单击鼠标EN_KILLFOCUS:编辑框失去输入焦点EN_MAXTEXT:输入的字符超过了规定的最大字符数。
在没有ES_AUTOHSCROLL 或ES_AUTOVSCROLL:的编辑框中,当正文超出了编辑框的边框时也会发出该消息 EN_SETFOCUS:编辑框获得输入焦点EN_UPDATE:在编辑框准备显示改变了的正文时发送该消息EN_VSCROLL:用户在垂直滚动条上单击鼠标编辑框的创建MFC为编辑框提供了CEdit类。
编辑框的所有操作都封装到了CEdit类中。
与静态文本框的创建类似,除了可以在对话框模板上拖进一个编辑框,然后关联一个变量或通过API函数使用,也可以在程序中动态创建编辑框,即调用CEdit类的成员函数Create。
Create成员函数的原型如下:virtual BOOL Create(DWORD dwStyle,const RECT&rect,CWnd* pParentWnd,UINT nID);参数说明:dwStyle:指定编辑框的风格。
VS2010MFC编程入门之二十四(常用控件:列表框控件ListBox)了解了比较常用的按钮控件,并通过按钮控件实例说明了具体用法。
本文要讲的是列表框控件(ListBox)及其使用实例。
列表框控件简介列表框给出了一个选项清单,允许用户从中进行单项或多项选择,被选中的项会高亮显示。
列表框可分为单选列表框和多选列表框,顾名思义,单选列表框中一次只能选择一个列表项,而多选列表框可以同时选择多个列表项。
列表框也会向父窗口发送通知消息。
这些通知消息及含义如下:LBN_DBLCLK :用户用鼠标双击了一列表项,只有具有LBS_NOTIFY 的列表框才能发送该消息LBN_ERRSPACE :列表框不能申请足够的动态内存来满足需要LBN_KILLFOCUS :列表框失去输入焦点LBN_SELCANCEL:当前的选择被取消,只有具有LBS_NOTIFY 的列表框才能发送该消息LBN_SELCHANGE:单击鼠标选择了一列表项,只有具有LBS_NOTIFY 的列表框才能发送该消息LBN_SETFOCUS:列表框获得输入焦点WM_CHARTOITEM:当列表框收到WM_CHAR 消息后,向父窗口发送该消息,只有具有LBS_WANTKEYBOARDINPUT 风格的列表框才会发送该消息WM_VKEYTOITEM:当列表框收到WM_KEYDOWN 消息后,向父窗口发送该消息,只有具有LBS_WANTKEYBOARDINPUT 风格的列表框才会发送该消息列表框控件的创建MFC将列表框控件的所有操作都封装到了CListBox类中。
创建列表框控件时,可以在对话框模板中直接拖入列表框控件Listbox,然后添加控件变量使用。
但如果需要动态创建列表框,就要用到CListBox类的Create成员函数了。
Create成员函数的原型如下:virtual BOOL Create(DWORD dwStyle,const RECT&rect,CWnd* pParentWnd,UINT nID);参数rect指定了列表框的位置和尺寸,pParentWnd为父窗口的指针,nID用于指定列表框控件的ID。
VS2008中对于MFC的MDI程序界面做了增强,支持很炫的的布局效果,之前还在说不能用CDialogBar类,现在完全可以使用 CDockablePane类替代了,现在只需要新建一个继承自CDockablePane的新类,就可以在其上添加各种控件了,如组合框、对话框等,现在尝试添加一个对话框。
新建一个MFC的多文档程序,如在Wizard中选择标准的MFC MDI新建一个想放入悬浮框的对话框资源IDD_DIALOG_DOCKDLG,Style设为Child,Border设为None,建议把默认添加的OK和 Cancel去掉,因为一般情况下点击这两个按钮后,对话框会销毁,而这里是不需要销毁的(如果没去掉点击了,悬浮框中的对话框内容就不能用了),如下添加一个按钮IDC_BUTTON_TEST。
然后为对话框添加类CTestDlg,如下为按钮添加响应voidCTestDlg::OnBnClickedButtonTest(){// TODO: Add your control notification handler code here MessageBox(_T("Hello World!"));}添加继承自CDockablePane的类CMyPane,如下添加此类的WM_CREATE和WM_SIZE响应,并添加上面对话框的成员变量CTestDlgm_TestDlg;在CMyPane::OnCreate和CMyPane::OnSize函数中添加代码,如下intCMyPane::OnCreate(LPCREATESTRUCT lpCreateStruct){if (CDockablePane::OnCreate(lpCreateStruct) == -1)return -1;// TODO: Add your specialized creation code here CRectrectDummy;rectDummy.SetRectEmpty();// 创建选项卡窗口:if (!m_TestDlg.Create(IDD_DIALOG_DOCKDLG,this)){TRACE0("未能创建输出选项卡窗口/n");return -1; // 未能创建}m_TestDlg.ShowWindow(SW_SHOW);return 0;}voidCMyPane::OnSize(UINT nType, int cx, int cy){CDockablePane::OnSize(nType, cx, cy);// TODO: Add your message handler code here// 选项卡控件应覆盖整个工作区m_TestDlg.SetWindowPos (this, -1, -1, cx, cy, SWP_NOMOVE | SWP_NOACTIVATE | SWP_NOZORDER);m_TestDlg.ShowWindow(SW_SHOW);}然后在MainFrame.h代码中添加成员变量CMyPanem_MyPane;在CMainFrame::OnCreate函数中添加代码if (!m_wndStatusBar.Create(this)){TRACE0("Failed to create status bar\n");return -1; // fail to create}m_wndStatusBar.SetIndicators(indicators,sizeof(indicators)/sizeof(UINT));if (!m_MyPane.Create(_T("MyPane"), this, CRect(0, 0, 100, 100), TRUE, IDD_DIALOG_DOCKDLG,WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI)){TRACE0("未能创建输出窗口/n");return FALSE;}m_MyPane.EnableDocking(CBRS_ALIGN_ANY);// TODO: Delete these five lines if you don't want the toolbar and menubar to be dockablem_wndMenuBar.EnableDocking(CBRS_ALIGN_ANY);m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);EnableDocking(CBRS_ALIGN_ANY);DockPane(&m_wndMenuBar);DockPane(&m_wndToolBar);DockPane(&m_MyPane); // 调整m_MyPane的大小使之适合父窗口运行程序,如下点击按钮,弹出Message对话框MyPane悬浮框可以悬浮在各个位置,具体见最上面的图片。
VS2010插件之NuGet
Visual Studio(简写VS)是.net程序员开发必不可少的开发⼯具,随着VS的版本不断的升级和使⽤⽤户的扩⼤,现在针对VS开发了许多的开源免费的插件,⼤⼤的⽅便了程序员的开发,提⾼了开发效率。
今天,我将介绍⼀下VS2010下⾯⼀个免费开源的插件NuGet ,英⽂全名应该是New Get。
它是⼀个专门管理这些插件的插件,通过NuGet你可以下载安装好多功能强⼤的插件。
NuGet的安装可以通过VS2010 ⼯具⾥⾯的扩展管理器(下图),联机搜索到,直接安装。
或者通过如下的链接地址从MSDN⽹站进⾏下载,点击直接安装。
安装成功后,在VS2010 ⼯具⾥⾯的扩展管理器⾥⾯就能发现它了,如下图:
安装完了 NuGet后,怎样使⽤呢?其实使⽤起来⾮常的⽅便,只需在项⽬的引⽤处右键,弹出⼀个对话框,点击管理NuGet程序包,就可以下载和使⽤各种插件了,是不是⾮常的⽅便。
双击管理NuGet程序包,将弹出NuGet的管理界⾯,⾥⾯有最新的各种.net插件,同时也证明,免费的软件,有时候也是⾮常好⽤得。
VS2010崭新操作软件说明书———功能更强盛与操作简单并没有矛盾欢迎使用VS2010崭新操作软件,目前该软件支持的控制卡型号有VSA系列、VSD卡、VS-mini卡、VSC++ 卡,暂时不支持VSB卡,请勿在VSB卡上更新VS2010软件。
在VSA系列的控制卡中,也仅支持标签颜色为白底红字的控制卡,假如错误的更新了VS2010 软件将对控制卡造成不行恢复的破坏,请您慎重使用。
b5E2RGbCAP目录第一部分VS2010崭新软件简介 ...................................................................................................................................... 3p1EanqFDPw一、 VS2010 崭新软件概括 (3)二、 VS2010 崭新软件的运转环境及组件介绍 ................................................................................................. 4DXDiTa9E3d三、 VS2010 操作界面简介 (5)四、软件主要功能列表 ............................................................................................................................................................ 6RTCrpUDGiT五、菜单功能介绍 (6)1. 文件 (6)2. 编写 (7)3. 视图 (7)4. 节目 (7)5. 预览 (7)7. 控制卡 (7)8. 远程 (8)9. 工具 (8)10. 帮助 (8)六、快捷工具栏介绍 (8)七、对象工具箱介绍 (8)5PCzVD7HxA八、节目对象和属性介绍 (9)九、编写区介绍 (9)十、系统状态栏介绍 (10)总结 (10)第二章对象的使用和编写 ........................................ 10jLBHrnAILg一、名词解说 .................................. 错误!不决义书签。
高效程序猿之(二)VS2010优秀插件上一讲介绍了VS2010的模板代码生成。
今天我们来看一下VS2010的插件功能。
优秀的插件可以显著提高程序猿的生成效率。
这个是2010版的新功能,用户可以通过安装插件来拓展Visual Studio 的功能。
在VS2010的菜单上,你可以找到Extension Manager的按钮,点击以后会弹出浏览和安装插件的对话框。
我们可以去在线的库中寻找插件。
在线安装完成后需要重启VS才能生效。
如果安装的是本地插件,则要关闭VS后再安装,不然也是要重启的。
下面介绍几个我常用的插件。
1. Indent Guides这款插件的作用是给代码块增加对齐线,以标识匹配的花括号,让程序猿很容易的找到对应的语句块。
2. PowerCommands for Visual Studio 2010这是微软官方的插件,它可以给你的右键菜单增加很多实用的功能。
比如对整个Project整理using、复制引用、打开文件位置等等。
3. Productivity Power Tools这个同样是微软官方的插件,看名字就知道它是提高生产效率的好助手。
它优化了添加引用的对话框。
另外,它对标签的显示方式也做了优化。
用不同颜色显示不同层次的文件,你也可以将标签锁定在左侧。
大家可以去设置界面中发现更多强大的功能:4. VS10x Code Map v2这款插件可以用可视化的方式来显示当前代码的结构。
只要在窗格中点击即可导航到目标代码,并且能够用不同的颜色在代码中标记不同的方法,非常实用。
不过很可惜的是,这个插件不是免费的,只有30天的试用时间。
这些插件的另外一些功能大家可以自己看一下。
相信对提高生成效率会非常有帮助的。
最后还有一个非常强大的代码自动完成插件:AutoCode网站是:上一讲说的T oString()方法,它可以通过tostr代码片段来自动完成。
首页就有demo演示。
但我感觉安装这个插件后,VS启动会很慢,而且免费版会弹东西,所以不用了。
VS2010全新操作软件说明书
———功能更强大与操作简单并无冲突
欢迎使用VS2010全新操作软件,目前该软件支持的控制卡型号有VSA系列、VSD卡、VS-mini卡、VSC++卡,暂时不支持VSB卡,请勿在VSB卡上更新VS2010软件。
在VSA系列的控制卡中,也仅支持标签颜色为
白底红字的控制卡,如果错误的更新了VS2010软件将对控制卡造成不可恢复的损坏,请您谨慎使用。
b5E2RGbCAP
目录
第一部分 VS2010全新软件简介..................................... 3p1EanqFDPw
一、VS2010全新软件概述 (3)
二、VS2010全新软件的运行环境及组件介绍.......................... 4DXDiTa9E3d
三、VS2010操作界面简介 (5)
四、软件主要功能列表 ........................................... 6RTCrpUDGiT
五、菜单功能介绍 (6)
1.文件 (6)
2.编辑 (7)
3.视图 (7)
4.节目 (7)
5.预览 (7)
6.工程 (7)
1 / 25。