VS2010控件缩写
VS2010和MFC编程入门之33(常用控件:标签控件Tab Control 下)
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;获取标签控件中标签的数量。
可编辑的列表控件 (VS2010 修改版)
在界面上成组地显示含有多个数据项的数据集,是列表控件的主要用途。
如下图所示,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编程入门之21(常用控件:编辑框Edit Control)
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:指定编辑框的风格。
VS2010和MFC编程入门之24(常用控件:列表框控件ListBox)
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。
VS2010中CDockablePane停靠框
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
VS2010插件之NuGet
Visual Studio(简写VS)是.net程序员开发必不可少的开发⼯具,随着VS的版本不断的升级和使⽤⽤户的扩⼤,现在针对VS开发了许多的开源免费的插件,⼤⼤的⽅便了程序员的开发,提⾼了开发效率。
今天,我将介绍⼀下VS2010下⾯⼀个免费开源的插件NuGet ,英⽂全名应该是New Get。
它是⼀个专门管理这些插件的插件,通过NuGet你可以下载安装好多功能强⼤的插件。
NuGet的安装可以通过VS2010 ⼯具⾥⾯的扩展管理器(下图),联机搜索到,直接安装。
或者通过如下的链接地址从MSDN⽹站进⾏下载,点击直接安装。
安装成功后,在VS2010 ⼯具⾥⾯的扩展管理器⾥⾯就能发现它了,如下图:
安装完了 NuGet后,怎样使⽤呢?其实使⽤起来⾮常的⽅便,只需在项⽬的引⽤处右键,弹出⼀个对话框,点击管理NuGet程序包,就可以下载和使⽤各种插件了,是不是⾮常的⽅便。
双击管理NuGet程序包,将弹出NuGet的管理界⾯,⾥⾯有最新的各种.net插件,同时也证明,免费的软件,有时候也是⾮常好⽤得。
VS2010全新操作软件说明书
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,VS2005串口控件MSComm加入方法
初始化完成后就可以用m_mscomm.put_PortOpen(TRUE)来打开端口开始接收数据了。
根据我们在RThreshold中设定的参数,程序会在接收到参数中指定的字符后触发一个OnComm事件,我们就需要处理这个事件来提取接收到的数据。我们需要通过查询m_mscomm.get_CommEvent()来确定具体的事件类型,比如可能是发送也可能接收到了数据,比如在此我们要提取接收数据,事件对应的返回值应当是2。然后获得的数据就可以用m_mscomm.get_Input()来获得,这个函数返回一个VARIANT结构变量,如果我们接收的是字符串数据,那就是保存在bstrVal中,比如下面的代码就是在接收到数据时将接收到的字符串保存在str变量中。
void CMScomDlg::OnCommMscomm() { // TODO: 在此处添加消息处理程序代码 CString str; switch(m_mscomm.get_CommEvent()) { case 2: str=CString(m_mscomm.get_Input().bstrVal); break; default: break; } }
m_mscomm.put_RThreshold(1)和m_mscomm.put_SThreshold(0)分别设定接收和发送数据的时候,引发接收数据的OnComm事件时缓冲区中的字符数量,0表示不触发OnComm事件,比如put_RThreshold(1)表示每接收到一个字符就处罚OnComm事件。
m_mscomm.put_InputLen(100)设定当前接收区数据长度为0,表示全部读取。
m_mscomm.put_InputMode(0)用来设定数据接收模式,1表示二进制,0表示文本。
高效程序猿之(二)VS2010优秀插件
高效程序猿之(二)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全新操作软件说明书
———功能更强大与操作简单并无冲突
欢迎使用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。
控件名常用缩写
16 rdo RadioButton
17 rtx RichTextBox
18 txt TextBox
19 tip ToolTip
10 mtx MaskedTextBox
11 cdr MonthCalendar
12 icn NotifyIcon
13 nud NumeircUpDown
14 pic PictureBox
RequiredFieldValidator rfv
<!--------------S----------------->
StatusLabel slbl
StatusStrip ss
<!--------------T----------------->
8 img ImageList
9 msq MessageQueue
10 pfc PerformanceCounter
11 prc Process
12 spt SerialPort
3 fnd FontDialog
4 ofd OpenFileDialog
5 sfd SaveFileDialog
组件
1 bgw BackgroundWorker
2 dre DirectoryEntry
DataGridView dgv
DataList dl
DomainUpDown dud
DropDownList ddl
<!--------------F----------------->
Combobox cbo
CompareValidator cv
VS2010和MFC编程入门之53(Ribbon界面开发:为Ribbon Bar添加控件)
VS2010MFC编程入门之五十三(Ribbon界面开发:为RibbonBar添加控件)理解了如何创建Ribbon样式的应用程序框架,这里就来初步讲讲怎样为Ribbon Bar添加Ribbon控件。
VS2010为Ribbon界面开发提供了Ribbon Designer,通过它我们可以为Ribbon Bar添加各种Ribbon控件、设置控件属性和进行界面布局。
Ribbon的界面元素可以分为类别、面板和基本控件(按钮、文本编辑框等),类别由面板组成,面板又由按钮、文本编辑框等基本控件组成。
以实例的方式讲解Ribbon控件的添加方法和属性,这样比较直观。
此实例还是在上一节中创建的Example52工程的基础上进行修改。
1、打开Example52工程,在资源视图Resource View中,展开Example52->Example52.rc->Ribbon,在Ribbon节点下,我们看到有一个系统自动生成的IDR_RIBBON,双击IDR_RIBBON节点,就可以在中间区域打开Ribbon Designer,如下图:上图中,Home标签下的整个界面就是类别,Clipboard和View对应的就是面板,每个面板都有一些按钮、复选框等基本控件。
2、我们要向Ribbon界面中添加控件的话,也需要从Toolbox给出的Ribbon控件列表中选择控件拖入Ribbon bar。
点击View菜单下的Toolbox,就会显示出Toolbox 视图。
下图就是Ribbon Designer的Toolbox:虽然与以前我们用的Toolbox有些不同,但还是很相似的。
上图的Toolbox中的Category就是类别,Panel就是面板,其他的大部分都是基本控件。
3、在Toolbox中选择Category拖入Ribbon bar,放到Home类别的后面,可以看到它的默认名称为“Category1”,并且默认带了一个面板“Panel1”。
MSComm控件使用VisualStudio2010
(2)“关闭串口”按钮,添加方法为从右侧“工具箱”拖放一个“Button”到对话框,并在右侧“属性”卡中修改“Caption”为“关闭串口”,修改“ID”为“IDC_BUTTON_CLOSE”。
}
m_mscomm.put_CommPort(1); //选择COM1
m_mscomm.put_InBufferSize(1024); //接收缓冲区
m_mscomm.put_OutBufferSize(1024);//发送缓冲区
m_mscomm.put_InputLen(0);//设置当前接收区数据长度为0,表示全部读取
}
void CCommTestDlg::OnBnClickedButtonSixteen()
{
// TODO:在此添加控件通知处理程序代码
}
消息映射已经自动关联。
8.
1在控件(电话图标)上“右键”——>添加事件处理程序
2点击“添加编辑”
在CommTestDlg.cpp文件中会增加函数:
BEGIN_EVENTSINK_MAP(CCommTestDlg, CDialogEx)
{
// TODO:在此添加控件通知处理程序代码
UpdateData(true); //读取编辑框内容
m_mscomm.put_Output(COleVariant(m_EditSend));//发送数据
m_EditSend.Empty(); //发送后清空输入框
UpdateData(false); //更新编辑框内容
微软官方的Visual_Studio控件命名规范
变量Type Prefix ExampleArray arr arrShoppingListBoolean bln blnIsPostBackByte byt bytPixelValueChar chr chrDelimiter DateTime dtm dtmStartDateDecimal dec decAverageHeightDouble dbl dblSizeofUniverseInteger int intRowCounterLong lng lngBillGatesIncomeObject obj objReturnValueShort shr shrAverageSingle sng sngMaximumString str strFirstNameWebControlsType Prefix ExampleAdRotator adrt adrtTopAdButton btn btnSubmitCalendar cal calMettingDatesCheckBox chk chkBlueCheckBoxList chkl chklFavColorsCompareValidator valc valcValidAgeCustomValidator valx valxDBCheck DataGrid dgrd dgrdTitlesDataList dlst dlstTitles DropDownList drop dropCountriesHyperLink lnk lnkDetailsImage img imgAuntBetty ImageButton ibtn ibtnSubmit Label lbl lblResults LinkButton lbtn lbtnSubmitListBox lst lstCountriesPanel pnl pnlForm2 PlaceHolder plh plhFormContentsRadioButton rad radFemaleRadioButtonList radl radlGenderRangeValidator valg valgAgeRegularExpression vale valeEmail_Validator Repeater rpt rptQueryResults RequiredFieldValidator valr valrFirstNameTable tbl tblCountryCodesTableCell tblc tblcGermanyTableRow tblr tblrCountryTextBox txt txtFirstName ValidationSummary vals valsFormErrors XML xmlc xmlcTransformResultsType Prefix Example Connection con conNorthwindCommand cmd cmdReturnProductsParameter parm parmProductIDDataAdapter dad dadProductsDataReader dtr dtrProductsDataSet dst dstNorthWindDataTable dtbl dtblProductDataRow drow drowRow98DataColumn dcol dcolProductIDDataRelation drel drelMasterDetailDataView dvw dvwFilteredProductsEvent-Handling SubroutinesThe name of an event-handling subroutine will consist of the ID of the control that rasied the event followed by the type of event being handled. For example, a subroutine named btnSubmit_Click handles the Click event of a Button control named btnSubmit.When a control that raises an event is not assigned an ID, the type of the control is used instead of the ID. For example, the subroutine named Button_Click handles the Click event ofa Button control without an ID.1、命名约定Pascal和Camel命名约定编程的命名方式主要有Pascal和Camel两种(Pascal:每个单词的首字母大写,例如ProductType;Camel:首个单词的首字母小写,其余单词的首字母大写,例如productType)以下是一些常用的C#成员及其推荐命名方法:标志符规则实例与描述类class Pascal Application枚举类型enum Pascal 记住,是以Pascal命名,切勿包含Enum,否则FXCop 会抛出Issue委托delegate Pascal 以Pascal命名,不以任何特殊字符串区别于类名、函数名常量const 全部大写全部大写,单词间以下划线隔开接口interface Pascal IDisposable 注:总是以I 前缀开始,后接Pascal 命名方法function Pascal ToString命名空间namespace Pascal以.分隔,当每一个限定词均为Pascal命名方式,比如:using ExcelQuicker.Framework参数Camel 首字母小写局部变量Camel 也可以加入类型标识符,比如对于System.String类型,声明变量是以str开头,string strSQL = string.Empty;数据成员Camel 以m开头+Pascal命名规则,如mProductType(m 意味member)属性Pascal1.1、局部变量命名在primitive的局部变量命名时,使用Camel命名规则,比如:int type = 0;double count = 0;…对于string类型定义,通常使用str前缀+Pascal命名的方式,比如string strSql = ""; //这是一种典型的命名SQL语句字符串的方式。
VS2010 格式化C++代码 ,AStyle Extension插件安装、配置、使用
--pad-header / -H --unpad-paren / -U empty-lines / -x --fill-empty-lines / -E
④格式化选项
只在括弧头部添加一个空格 移除括号内外的空格 删除函数方法里多余的空行 以空格对齐填充前一行空行
参数命令 --break-closing-brackets / -y --break-elseifs / -e --add-brackets / -j --add-one-line-brackets / -J --keep-one-line-statements / -o --keep-one-line-blocks / -O --convert-tabs / -c --align-pointer=type / -k1 --align-pointer=middle / -k2 --align-pointer=name / -k3 --mode=c --mode=cs --mode=java
javakrstyle括号如linux风格bracketsstroustrup括号如stroustrup风格bracketshorstmann括号如horstmann风格缩进选项参数命令参数说明indentclasses缩进class和struct块后面的public等indentswitches缩进switch块后面的case块indentcases缩进case块后面的括号indentbrackets括号缩进indentblocks括号缩进函数缩进indentnamespaces命名空间后缩进indentlabels额外的标签缩进indentpreprocessor多行反斜杠定义缩进indentcol1comments允许注释跟随代码一起缩进maxinstatementindent在连续声明中缩进最大个空格小于80默认为40minconditionalindent在多行中设置最小缩进小于40默认为当前两倍缩进填充选项参数命令参数说明breakblocks在循环语句前后加空行breakblocksall在循环语句前后elsecatch前加空行padoper运算符前后加空格padparen在括号内外都加上空格padparenout在括号外加上空格padparenin在括号内加上空格padheader只在括弧头部添加一个空格unpadparen移除括号内外的空格deleteemptylines删除函数方法里多余的空行fillemptylines以空格对齐填充前一行空行格式化选项参数命令参数说明breakclosingbrackets让else语句块下起一行breakelseifs语句拆开缩进addbrackets自动补充括号默认在条件语句后紧接括号addonelinebrackets自动补充括号并且保持括号与语句在一行keeponelinestatements维持一行里的多条语句不变keeponelineblocks不破坏一行里面的块converttabs转换tab为空格alignpointertypek1alignpointermiddlek2alignpointernamek3使指针或者引用符靠近变量类型使指针或者引用符在变量类型和变量名称中间使指针或者引用符靠近变量名称modecmodecsmodejava指定为cc代码格式化指定为c代码格式化指定为java代码格式化参数命令样式请参考artisticstyle
VS2010-MFC-ListControl控件讲解
CListCtrl 详解获取列数获取总行数修改某行的数值1.获取CListCtrl 列数//m_List是一个CListCtrlCHeaderCtrl* pHeaderCtrl = m_List.GetHeaderCtrl();if(pHeaderCtrl){int n = pHeaderCtrl-> GetItemCount();}2.获取选择的行数void CInfoDlg::OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult){// TODO: Add your control notification handler code hereNMLISTVIEW* pList = (NMLISTVIEW*)pNMHDR;CString str;// 获取总行数int nItem=m_cListCtrl.GetItemCount();// 获取总列数CHeaderCtrl* pHeaderCtrl = m_cListCtrl.GetHeaderCtrl();if(pHeaderCtrl){int n = pHeaderCtrl-> GetItemCount();以下未经说明,listctrl默认view 风格为report-------------------------------------------------------------------------------1. 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=/library/en-us/wceshellui5/html/wce50lrflistvie wstyles.asp--------------------------------------------------------------------------------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");//设置其它列数据//新插入的数据在下面int nIndex = m_list.GetItemCount();LV_ITEM lvItem;lvItem.mask = LVIF_TEXT ;lvItem.iItem = nIndex; //行数lvItem.iSubItem = 0;lvItem.pszText = (char*)(LPCTSTR)strCount; //第一列//在最后一行插入记录值.m_list.InsertItem(&lvItem);//插入其它列m_list.SetItemText(nIndex,1,strLat);--------------------------------------------------------------------------------4. 一直选中item选中style中的Show selection always,或者在上面第2点中设置LVS_SHOWSELALWAYS --------------------------------------------------------------------------------5. 选中和取消选中一行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-us--------------------------------------------------------------------------------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))因为你删除了第一列后,后面的列会依次向上移动。
VS2010(c++)中各后缀文件的含义和作用总结
VS2010(c++)中各后缀文件的含义和作用总结VC++中文件类型小结.dsw---- 这种类型的文件在VC中是级别最高的,称为Workspace文件.dsp---- 在VC中,应用程序是以Project的形式存在的,Project 文件的扩展名为.dsp,在Workspace文件中可以包含多个Project,由Workspace文件对它们进行统一的协调和管理,每个工程都对应一个dsp文件.opt---- 与dsw类型的Workspace文件像配合的一个重要的文件类型是以opt为扩展名的文件,这个文件中包含的是Workspace文件中要用大本地计算机的有关配置信息,所以这个文件不能在不同的计算机上共享。
当我们打开一个Workspace文件时,如果系统找不到需要的opt类型文件,就会自动的创建一个与之配合的包含本地计算机信息的opt文件。
.clw---- 以clw为扩展名的文件是用来存放应用程序中用到的类和资源的信息,这些信息是VC中的ClassWizard工具管理和使用类的信息来源readme.txt---- 这个文件每个应用程序都有一个,这个文件中列出了应用程序中用到的所有文件的信息,打开并查看其中的内容就可以对应用程序的文件结构有一个基本的知识.h----- 这种文件为头文件,包含的主要是类的定义.cpp---- 这种文件为实现文件,该种文件包含的主要是类成员函数的实现代码。
一般来说,h为扩展名的文件和cpp为扩展名的文件是一一对应配合使用的.rc---- 在VC中以.rc为扩展名的文件为资源文件,其中包含了应用程序中用的所有的Windows资源,要指出的一点是rc文件可以直接在VC集成环境中以可视化的方法进行编辑和修改.rc2----- 也是资源文件,但这个文件中的资源不能在VC的集成环境下直接进行编辑和修改,而是由我们自己根据需要手工编辑这个文件.ico,.bmp,.cur----- 还有一些具体的资源文件不一一列举.exe,.dll,.fon,.mod,.drv,.ocx------ 都是所谓的动态链接库文件。
最全的VS2010 编程专业词汇表
应用程序的一个组件。
Server Control — 服务器控件
一种服务器端组件,它封装了用户界面及其相关的功能。服务器控件直接或间接地从System.Web.UI.Control类派生。服务器控件的超集包括Web服务器控件、HTML服务器控件和移动控件。服务器控件的页语法在控件的标记上包含runat="server"特性。请参见:HTML服务器控件、验证服务器控件和Web服务器控件。
Add-in-side Adapter —外接程序端适配器
.NET Framework外接程序编程模型中的一个程序集,该程序集包含一个或多个类,并在外接程序视图和协定之间相互转换数据。根据调用的方向,适配器将视图转换为协定或者将协定转换为视图。请参见:外接程序、协定。
Add-on Package —加载项包
Entity Framework中的一个逻辑容器,其中包含相同类型的关联的实例。
ASSOCIATORS OF
一个WMI查询语言语句,它通过检索与特定源实例关联的所有终结点实例,支持以编程方式遍历关联。请参见:GROUP、HAVING、ISA、REFERENCES OF、SELECT、WHERE和WITHIN。
Assembly Metadataertion (Assert) —断言
在.NET Framework安全性中,帮助确保方法有权访问特定的资源(即使方法的调用方没有所需的权限)。在堆栈步期间,如果遇到断言所需要的权限的椎栈帧,对该权限的安全检查将会成功。断言会造成安全漏洞,使用时应十分小心。
.NET Framework Class Library — .NET Framework类库
由.NET Framework中所含类、接口和值类型组成的一个库。该库提供对系统功能的访问,是建立.NET Framework应用程序、组件和控件的基础。请参见:类、符合CLS、公共语言规范、接口、值类型。