当前位置: 首页 > news >正文

个人自建网站资讯门户类网站

个人自建网站,资讯门户类网站,扁平化网站格局,网站建设图片排版本程序主要实现如下功能#xff1a; 程序通过左边的树形控件显示本地计算机中目录的结构#xff0c;右边的列表控件则负责响应树形控件中选择的目录节点并把此节点中的所有项在列表框中显示出来#xff0c;列表框支持奇偶行颜色设置#xff0c;选中颜色设置和热点颜色设置 程序通过左边的树形控件显示本地计算机中目录的结构右边的列表控件则负责响应树形控件中选择的目录节点并把此节点中的所有项在列表框中显示出来列表框支持奇偶行颜色设置选中颜色设置和热点颜色设置 本程序支持显示或不显示隐藏文件和系统文件支持文件的重命名、打开、复制、移动和删除操作删除操作支持删除到回收站和彻底删除选择。 同时支持地址栏跳转功能。支持属性栏的时间显示 程序主界面   1.       模式与无模式对话框 本程序是基于对话框而设计的对话框分为模式对话框和无模式对话框。对于模式对话框当该对话框在关闭之前用户不能够在同一应用程序中进行其它的操作这类对话框如“打开文件”对话框等而对于无模式对话框当该对话框显示后用户可以进行其它的操作这类对话框仅仅是一个弹出窗口如“替换查找”对话框等。 新建一个MFC的Demo对话框程序默认设置Finished 完成新建。然后在资源视图中再新建两个Dialog,右键这新建的Dialog 把它们的Caption,改为ModeDlg 和NonModeDlg 把ID号分别改为IDD_MODEDLG 和IDD_NONMODEDLG 改好后ModeDlg 和NonModeDlg对话框模版就新建好了那么如何来使用它们呢若要在这些新建的对话框上进行消息响应就要为这些对话框模版生成一个CDialog派生类才行那么如何为ModeDlg和NonModeDlg生成它们的派生类呢在ModeDlg对话框点击右键选择类向导Class Wizard ,然后点击添加类Add class新建一个CModeDlg类即在弹出的MFC类向导对话中在对话框的“类名”栏中输入CModeDlg并选择该类的基类为CDialog类。单击“完成”按钮以新建CModeDlg类。如图   同样在NonModeDlg对话框中右键选择类向导Class Wizard然后添加一个CNonModeDlg类。然后打开IDD_DEMO_DIALOG对话框在它上面添加两个按钮分别命名为ModeDlg和NonModeDlg 同时这两个按钮的ID号分别换成IDC_MDlg ,IDC_NMDlg。然后右键点击ModeDlg按钮选择添加事件句柄Add Event Handler...,在弹出的事件句柄向导对话框中为按钮选择单击事件所以消息类型选择BN_CLICKED按钮是在IDD_DEMO_DIALOG对话框上所以它的消息事件应该建立在CDemoDlg这个类里面最后函数句柄的名称默认即可。具体如图    单击添加并编辑以新建ModeDlg按钮响应函数OnBnClickedMdlg以同样的方式为NonModeDlg按钮在CDemoDlg类中添加BN_CLICKED事件句柄函数OnBnClickedNmdlg 为了在CDemoDlg类中使用ModeDlg对话框和NonModeDlg的类首先需要将它们的头文件包含到DemoDlg.h文件中即在DemoDlg.h文件添加 #includeModeDlg.h #includeNonModeDlg.h 然后回到DemoDlg.cpp文件在刚添加的ModeDlg按钮响应函数中创建CModeDlg类的实例并调用DoModal函数显示对话框代码如下 void CDemoDlg::OnBnClickedMdlg() {     CModeDlg dlg;  //创建CModeDlg类实例dlg     dlg.DoModal();  //调用DoModal函数显示对话框 } 下面在添加的NonModeDlg按钮函数OnBnClickedNmdlg()来创建并显示无模式对话框创建无模式对话框首先生成一个CNonModeDlg类的实例然后调用Create()函数来创建无模式对话框最后调用ShowWindow()来显示无模式对话框添加代码如下 void CDemoDlg::OnBnClickedNmdlg() {     CNonModeDlg *pDlg new CNonModeDlg();// 创建一个CNonModeDlg类的实例     pDlg-Create(IDD_NONMODEDLG,this); // 创建无模式对话框     pDlg-CenterWindow();  //对话框居中显示     pDlg-ShowWindow(SW_SHOW); //显示对话框 }   注意Create()函数中的第一个参数是无模式对话框的ID号当编写完 pDlg-Create(IDD_NONMODEDLG,this); 这行代码后提示IDD_NONMODEDLG 没有定义这是因为没有包含Resouce.h头文件导致它找不到这个ID号所以在DemoDlg.cpp中包含这个头文件即可。 还需要注意的是关闭调用DoModal()函数创建的模式对话框时系统会自动回收模式对话框申请的资源但是当关闭无模式对话框时系统不会自动回收和释放创建无模式对话框时所申请的资源所以在无模式对话框被关闭时需要手动回收它创建时申请的资源否则会造成内存泄露那么如何手动来回收它申请的资源呢 在“类视图“窗口中选择CNonModeDlg类并单击属性窗口中的属性按钮然后重写PostNcDestroy函数。在该函数中添加一条delete语句以销毁对话框回收资源代码如下 void CNonModeDlg::PostNcDestroy() {     delete this;     CDialog::PostNcDestroy(); } 下面介绍一下本程序需要程序的控件在后面的程序中用到时再做更详细的使用说明。   控件名称 MFC类 说明 静态控件 CStatic 用于显示一些固定不变的文字或图形 按钮 CButton 用于产生某些命令消息包括单选复选和按键按钮 编辑框 CEdit 用于完成文本和数字的输入和编辑 列表框 CListBox 显示一个列表让用户从中选取一个或多个项 组合框 CComboBox 是一个列表框和编辑框组合的控件 列表控件 CListCtrl 包含图标标签显示内容的控件 树形控件 CTreeCtrl 以树结构形式显示一组信息能够反映这些信息的结构   默认情况下所有静态控件的ID标识符都是IDC_STATIC其表示是静态的并且显示的内容不能够改变不能够为这类控件添加成员变量消息响应函数等。如果需要动态地改变静态控件上的显示则需要为这些控件重新指定一个非IDC_STATIC的ID标识符然后才能在程序中为静态控件添加成员变量消息响应函数等。 可以调用CWnd类的GetDlgItem成员函数来获取该控件的CWnd指针或者通过调用GetDlgItemText或SetDlgItemText函数来改变静态控件显示的文本内容。   常见的按钮主要有三种类型按键按钮、单选按钮和复选按钮。一般而言需要为按钮添加单击事件BN_CLICKED消息的消息响应函数。同时可以调用CButton类的成员函数SetCheck和GetCheck分别来设置或获取指定按钮的选中状态原型如下 void SetCheck(int nCheck); int GetCheck() const; 其中nCheck和GetCheck函数返回的值可是0表示不选中1表示选中2表示不确定仅用于三态按钮。对于同组多个单选按钮的选中状态的设置或获取需要调用窗口类Cwnd的成员函数CheckRadioButton 和GetCheckedRadioButton 原型如下 void CheckRadioButton (int nIDFirstButton, int nIDLastButton,int nIDCheckButton); int GetCheckedRadioButton(int nIDFirstButton,int nIDLastButton); 其中nIDFirstButton 和nIDLastButton 分别指定同组单选按钮的第一个和最后一个按钮的ID值nIDCheckButton 用来指定要设置选中状态的按钮的ID值函数GetCheckedRadioButton返回被选中的按钮ID值。 在MFC中提供支持位图按钮的CBitmapButton类它是CButton类的派生类最多可以为位图按钮指定按钮的正常、按下、获得焦点和被禁用的四副状态位图。 在创建位图按钮时首先需要为按钮定义CBitmapButton类型的变量然后调用CWnd类的成员函数SubclassDlgItem将变量关联到按钮控件上再调用该类的的成员函数LoadBitmaps为按钮加载相应状态的位图最后还可以调用SizeToContent函数来调整按钮的大小以适合位图。这些函数的声明如下 BOOL SubclassDlgItem(UINT ID,CWnd* pParent); BOOL LoadBitmaps(LPCTSTR lpszBitmapResource,                 LPCTSTR lpszBitmapResourceSel NULL,                  LPCTSTR lpszBitmapResourceFocus NULL,                 LPCTSTR lpszBitmapResourceDisabled NULL);   BOOL LoadBitmaps(UINT nIDBitmapResource,                 UINT nIDBitmapResourceSel 0,                 UINT nIDBitmapResourceFocus 0,                 UINT nIDBitmapResourceDisabled 0); 在创建位图按钮时需要设置按钮的OwnerDraw属性为TRUE.   编辑框作为一个让用户从键盘输入和编辑文本的矩形框当文本被修改或呗滚动时会向父窗口发送一些消息由此可以在属性窗口中为编辑框控件添加这些消息的响应函数。 消息列表 EN_CHANGE  当编辑框中的文本已被修改在新的文本显示之后发送此消息 EN_HSCROLL 当编辑框的水平滚动条被使用在更新显示之前发送此消息 EN_KILLFOCUS 编辑框失去键盘输入焦点时发送此消息 EN_MAXTEXT 文本数目达到了限制值时发送此消息 EN_SETFOCUS 编辑框得到键盘输入焦点时发送此消息 EN_UPDATE 编辑框的文本已被修改新的文本显示之前发送此消息 EN_VSCROLL 当编辑框的垂直滚动条被使用在更新显示之前发送此消息   当编辑框显示多行文本内容时通常需要使用LineScroll 成员函数来滚动显示文本使用GetLineCount来获取多行文本的行数。 int GetLineCount() const; void LineScroll( int nLine, int nChars 0); 其中 nLine 指定了纵向滚动的行数nChars指定了水平滚动的字符数。但是如果指定了编辑框的对齐属性则nChars值无效。   列表框可分为单选多选扩展多选以及非选择四种类型默认风格下的单选列表框让用户一次只能选择一个项多选列表框则一次可以选择多个项而扩展多选列表框则充许用户用鼠标拖动或其他特殊组合键进行选择非选列表框则不提供选择功能。   当列表框创建之后往往要添加、删除、修改或获取列表框中的列表项这些操作都可调用MFC的CListBox类成员函数来实现。此外列表框的项除了用字符串来标识外还常常通过索引来确定。索引表明项目在列表框中排列的位置它是以0为基准即列表框中的第一项的索引是0第二项为1等。列表框控件类CListBox常用的成员函数如下 AddString  向列表框中添加一个字符串 InsertString  在列表框中指定位置插入一个字符串 DeleteString  从列表框中删除一个字符串 ResetContent 清空列表框所有入口 FindString 在列表框中删除一个字符串 GetCurSel 返回列表框中当前选择项的索引 SetCurSel 选择一个列表框字符串 GetText  从列表框中获取某项的字符串   组合框是一个列表框和编辑框组合的控件。组合框大致可分为两类一类是对组合框中的列表框进行操作另一类是对组合框中的编辑框进行操作这些操作都可以调用CComboBox成员函数来实现常用的成员函数如下 AddString 在组合框中列表框的列表末尾添加一个字符串 DeleteString 删除组合框中列表框中的一个字符串 InsertString 在组合框的列表框中插入一个字符串 ResetContent 删除组合框中列表框和编辑框中的所有项 FindString 在组合框的列表框中查找具有指定前缀的第一个字符串 GetCurSel 取得组合框的列表框中当前选中项的索引 SetCurSel 在组合框的列表框中选择一个字符串 GetLBText 从组合框的列表框中取得第一个字符串 GetCount 取得组合框的项数   最后再来谈谈DDX和DDV技术 MFC提供的DDX和DDV技术使用户方便地对控件中的数据进行操作。DDX将数据成员变量与对话框中的控件相关联使得数据在控件之间或者控件与对话框之间能够直接交换DDV用于对控件中的数据进行校验以保证数据的合法性和有效性。 在为对话框资源创建对话框类时MFC类向导将会自动为对话框类中添加数据交换函数DoDataExchange, 并在该函数中添加相应的数据交换函数或数据校验函数。 需要注意的是用户不能直接调用DoDataExchange 函数数据交换和校验是由MFC负责处理的。数据交换和校验机制都是由MFC框架实现的MFC通过一组DDX交换函数和DDV验证函数来实现控件数据的交换和数据的验证。根据不同的控件类型MFC提供了不同的数据交换函数它们都是以DDX_作为前缀的。同样数据校验函数也都是以DDV_作为前缀这些函数都不需要用户自己添加MFC会自动添加的。   需要注意的是 DoDataExchange 数据交换和数据校验函数都具有双向性。当为控件定义了数据变量后可以通过CWnd::UpdateData函数实现对控件数据的输入和读取。当以TRUE参数调用UpdateData函数时控件中的数据被保存到相关联的成员变量中如果以FALSE为参数调用UpdateData函数时则成员变量的值将被传递到控件上。 转载于:https://www.cnblogs.com/AI-Algorithms/p/3337745.html
http://www.zqtcl.cn/news/334645/

相关文章:

  • 做壁纸网站建站优化办事效率高
  • linux 做网站数据库怎么开发ios软件
  • 沛县网站设计html制作网页的代码
  • 南昌网站建设公司如何万维网络(临沂网站建设)
  • 张家界做网站洛阳网站建设哪家专业
  • 快餐网站模板电子版邀请函制作软件免费
  • 有什么做视频的素材网站网站名称注册保护
  • 北京 顺义 网站制作h5网站网站建设
  • 网站在百度上搜不到了wordpress导航菜单加图片
  • wordpress网站访问慢网站建设35类
  • 绍兴做网站价格字体
  • asp.net网站开发实训可以不花钱做网站吗
  • 北京网站的制作设计服务器和电脑主机的区别
  • 北京网站建设的服务公司凡科网站 怎么开支付
  • 包头公司做网站知名做网站费用
  • 安徽网站建设服务平台重庆网站建公司大全
  • 有什么网站可以做中间人的相城区建设局网站
  • 房屋装修在线设计网站百度联盟广告怎么屏蔽
  • 网站,商城,app+建设域名网址注册
  • 肥西做网站设计网页页面
  • 怎样做百度推广网站iis服务器的默认网站
  • 东莞建设工程交易中心门户网站湖南设计网站机构
  • 做网站在网站建设客户
  • 河北建设厅安监站官方网站一个新手怎么做电商
  • 做结婚请柬网站有那些做网店哪个网站好
  • 做网站尽在美橙互联欧美简约风格网站设计
  • idea建设完整的网站微官网下载
  • 阿城区建设小学网站上海建设行政主管部门政务网站
  • 西丽网站建设网站怎样做才能有点击率
  • 网站建设图片大小建设部网站1667号公告