![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
他山之石
文章平均质量分 76
wuti_pl
这个作者很懒,什么都没留下…
展开
-
界面编程总结(1)
我们在做程序设计时界面与功能,那个更加吸引用户的兴趣呢?这是一个很难回答的问题。拥有美丽的外观,软件就成功了一半。界面由控件、工具栏、菜单、窗体等元素组成,对他们进行美化就能得到一个美丽的界面。<br />目前界面编程技术包括MFC、win32 SDK 、CJLibrary、WTL以及一些界面开发包。文本介绍MFC界面编程技术。<br />一、控件自绘<br />控件的生成包括静态控件和动态控件的生成。动态控件是在应用程序运行过程中临时产生的。所以在进行动态控件的自绘时,方法比自绘静态控件复杂些。应该考虑控转载 2011-01-24 11:04:00 · 914 阅读 · 0 评论 -
界面编程总结(2)
WIN32 SDK界面编程<br /> <br />在介绍win32 sdk界面编程,先需要了解win32 编程。熟悉win32编程之后,就可以轻松进行win32 界面编程。<br />一、什么是win32 编程<br />Win32编程,指的是用Window提供的API(Application Programming Interface)为Window编写应用程序。 之所以称之为Win32,是因为现在的Window都是32位的(现在已经有64位的吧!但是最普遍是32位).win32 是指Window都是3转载 2011-01-24 11:08:00 · 475 阅读 · 0 评论 -
界面编程总结(5)
利用界面开发包美化界面<br /> <br />在程序设计中为了界面和业务逻辑相分离,将程序员从烦琐的界面设计中彻底解放出来,将精力集中在业务功能的实现上,提高产品的开发效率。可以利用换肤软件开发包快速开发漂亮的软件。本文主要介绍几种换肤软件开发包,常见几种换肤软件开发包包括SkinMagic、SkinFeature、Skin++、AppFace等等。<br /> <br />一、SkinMagic <br />SkinMagic Toolkit是一套功能强大的界面解决方案库,我们提倡界面和业务逻辑相分离,转载 2011-01-24 11:10:00 · 493 阅读 · 0 评论 -
VC鼠标右键弹出菜单的实现(转)
<br />前提工作:<br />1添加Menu资源,在里面设好内容<br />2添加鼠标右键点击消息<br />具体实现:<br />void DIALOG1::OnRclickTree1(NMHDR* pNMHDR, LRESULT* pResult) <br />{<br /> // TODO: Add your control notification handler code here<br /> LPPOINT lpoint=new tagPOINT; <br /> ::GetCurso转载 2011-01-24 11:15:00 · 529 阅读 · 0 评论 -
VC++中全局变量的问题(转)
<br />全局变量一般这样定义:<br />1。在一类的.cpp中定义 int myInt;<br />然后再在要用到的地方的.cpp里extern int myInt;这样就可以用了。<br />2。在stdafx.cpp中加入:<br />int myInt;<br />然后在stdafx.h中加入:<br />extern int myInt<br />这样定义以后无论在什么文件中都是可见的.<br />3。比较规范的是,先定义一个Glbs.h,把所有的全局变量原始定义放进去。然后定义一个Exter转载 2011-01-24 11:17:00 · 294 阅读 · 0 评论 -
VC多文档编程技巧(取消一开始时打开的空白文档)
在MDI程序中,当应用程序启动时,都会自动创建一个空白窗口。但有时我们并不希望创建这样的空白窗口。比如,对于一个文件浏览器来说,空白窗口就没有什么意义。 <br /><br />要防止空白窗口的创建,首先就要明白这个窗口是如何被创建的。在 InitInstance()中,有一个命令行的执行过程,当命令行上没有参数时,函数ParseCommandLine(cmdInfo)会将 CCommandLineInfo::m_nShellCommand成员置为CCommandLineInfo::FileNew,这将导致转载 2011-02-25 11:04:00 · 754 阅读 · 0 评论 -
函数指针数组的妙用
<br />函数指针数组代替switch<br /> <br />笔者在开发某软件过程中遇到这样一个问题,前级模块传给我二进制数据,输入参数为 char* buffer和 int length,buffer是数据的首地址,length表示这批数据的长度。数据的特点是:长度不定,类型不定,由第一个字节(buffer[0])标识该数据的类型,共有256(28 )种可能性。我的任务是必须对每一种可能出现的数据类型都要作处理,并且我的模块包含若干个函数,在每个函数里面都要作类似的处理。若按通常做法,会写出如下代码:转载 2011-03-07 10:35:00 · 345 阅读 · 0 评论 -
函数指针数组的妙用
<br />前级模块传给我二进制数据,输入参数为 char* buffer和 int length,buffer是数据的首地址,length表示这批数据的长度。数据的特点是:长度不定,类型不定,由第一个字节(buffer[0])标识该数据的类型,共有256(28 )种可能性。我的任务是必须对每一种可能出现的数据类型都要作处理,并且我的模块包含若干个函数,在每个函数里面都要作类似的处理。若按通常做法,会写出如下代码:<br />void MyFuntion( char* buffer, int length转载 2011-03-07 10:36:00 · 337 阅读 · 0 评论 -
VC++动态链接库(DLL)编程深入浅出 网址
<br />http://www.qqread.com/vc/i720283020_9.html原创 2011-02-23 10:58:00 · 292 阅读 · 0 评论 -
VC编程完美实现树型控件的拖动
<br />树型控件用来显示具有一定层次结构的数据项时方便、直观,被广泛地应用在各种软件中,如资源管理器中的磁盘目录就用的是树型控件,我们在编程中也会经常用到,但MFC 中提供的 CTreeCtrl 类并不直接支持拖动节点等高级特性,这使我们程序员编程时有很大限制,又给软件用户带来了一些不便。下面就让我们自己动手来解决这个问题,实现树型控件中节点的拖动。<br /><br />我们从 CTreeCtrl 中派生了一个类 CXTreeCtrl ,它具有如下的特点:<br /><br />⑴ 基本拖动的转载 2011-02-23 10:19:00 · 864 阅读 · 0 评论 -
VC中自动改变控件位置和大小的对话框类
VC中自动改变控件位置和大小的对话框类转载 2011-01-24 10:58:00 · 409 阅读 · 0 评论 -
界面编程总结(7)
WPF<br />WPF(Windows Presentation Foundation)是Microsoft用于Windows的新一代显示系统;WPF统一了Windows创建、显示、操作文档、媒体和用户界面 (UI) 的方式,使开发人员和设计人员可以创建更好的视觉效果和不同的用户体验,带给用户震撼视觉体验的Windows客户端应用程序。使用WPF,您可以创建广泛的独立应用程序和浏览器承载的应用程序。本专题将从WPF的体系结构开始,向您全面介绍WPF开发所需的基础知识、XAML语法、控件开发和数据通信,最后转载 2011-01-24 11:10:00 · 327 阅读 · 0 评论 -
界面编程总结(4)
WTL界面编程<br /> <br />WTL是个很奇特的东西,它由微软公司一群热情的程序员维护,它从未出现在微软的官方产品名单上,但可以从微软的官方网站下载最新的WTL。它没有正式的文档支持,用WTL做关键字在MSDN中检索只能得到0个结果,但是全世界的开发网站上都有针对WTL的讨论组和邮件列表,任何问题都会得到热情的解答。 但是一时的热情不能解决文档缺乏的困扰,虽然网上有很多使用WTL的例子和说明文章,几乎把MFC能实现的各种稀奇古怪的效果都实现了,但都是零散的不系统的介绍,故对推广WTL是一种障碍转载 2011-01-24 11:09:00 · 322 阅读 · 0 评论 -
界面编程总结(3)
CJLibrary界面编程<br /> <br />在进行项目开发时,功能是最主要的,逐一设置单纯的控件外观与高效率的程序开发是相互矛盾的。在这里推荐给大家一个类库--CJLibrary,利用这个库,你可以做出像Outlook, DevStudio那样美观、方便的程序界面,让读者朋友在程序界面程序设计中享受一下RAD。<br />一、CJLibrary安装与环境配置<br />CJ是一套基于MFC的VC++界面开发类库,源代码公开,可以网上免费下载。它的主 <br />页是http://www.codej转载 2011-01-24 11:09:00 · 390 阅读 · 0 评论 -
彻底了解指针数组,数组指针,以及函数指针,以及堆中的分配规则(转)
彻底了解指针数组,数组指针,以及函数指针,以及堆中的分配规则(转)<br />一 :关于指针和堆的内存分配 <br />先来介绍一下指针 : 指针一种类型,理论上来说它包含其他变量的地址,因此有的书上也叫它:地址变量。既然指针是一个类型,是类型就有大小,在达内的服务器上或者普通的PC机上,都是4个字节大小,里边只是存储了一个变量的地址而已。不管什么类型的指针,char * ,int * ,int (*) ,string * ,float * ,都是说明了本指针所指向的地址空间是什么类型而已,了解了这个基本上转载 2011-01-24 11:17:00 · 505 阅读 · 0 评论 -
让你的控件也具有拖拽(drag-and-drop)功能
让你的控件也具有拖拽(drag-and-drop)功能现在有很多软件都支持拖拽功能,就是用鼠标拖着文件放到软件窗口中某个位置,软件就可以做出相应的反应。比如,Windows自带的播放软件Windows Media Player,你可以拖着一个媒体文件放到它的主窗口中,它就会开始播放这个文件。 怎么让自己的软件也有这个功能呢? 其实,并不是很难,只要让你需要有拖拽功能的控件响应WM_DROPFILES消息就行了。下面以Edit控件和ListBox控件为例子来说明。 首先,从CEdit继承,自转载 2011-01-24 10:55:00 · 370 阅读 · 0 评论 -
使用VC中CListCtrl的SortItems对数据排序
首先说明VC中CListCtrl的排序功能非常麻烦,如果有选择的话可以使用第三方的类比如CListCtrlEx等下面来说在VC中标准的CListCtrl是怎么样排序的 我做这个主要用在一远程文件管理的 文件列表排序中 1.排序函数的原型 在CListCtrl中有一个成员函数叫SortItems它接收两个参数一个是用于比如的回调函数另一个是要排序的list指针 2.回调函数的原型 回调函数是这个样子的 int CALLBACK ListCompare(LPARAM lParam1,转载 2011-01-24 11:00:00 · 594 阅读 · 0 评论 -
Visual C++开发工具与调试技巧整理
自己总是用VC平台来开发东西,但是有时候总是出这样那样的问题,呵呵,总是需要上网查资料来解决,在这里把自己用到上网查的一些技巧摘录如下,希望对大家有用,省去大家再去搜索的烦恼。1.如何在Release状态下进行调试Project->Setting=>ProjectSetting对话框,选择Release状态。C/C++标签中的Category选General,Optimizations选Disable(Debug),Debut info选Program Database。在Link标签中选中Generate转载 2011-01-24 11:02:00 · 336 阅读 · 0 评论 -
界面编程总结(6)
RIA技术<br />l 定义<br />RIA(Rich Internet Application,富互联网应用系统)技术允许我们在因特网上以一种象使用Web一样简单的方式来部署富客户端程序。这是一个用户接口,它比用HTML能实现的接口更加健壮、反应更加灵敏和更具有令人感兴趣的可视化特性。无论将来RIA是否能够如人们所猜测的那样完全代替HTML应用系统,对于那些采用胖客户端技术运行复杂应用系统的机构来说,RIA确实提供了一种廉价的选择。<br />l 2. RIA的产生背景<br转载 2011-01-24 11:11:00 · 303 阅读 · 0 评论 -
树控件的双击响应(转)
<br />ClassWizard为CTreeCtrl(树控件)添加的NM_DBLCLK(双击)消息的响应函数中带有一个NMHDR * 型指针形参:<br />OnDblClkTree(NMHDR* pNMHDR, LRESULT* pResult)<br />这个陌生的指针类型常使初用树控件的编程者陷入迷茫之中。实际上我们完全不理会它,也可以实现树控件的双击响应,即在OnDblClkTree( )函数中调用树控件的成员函数CTreeCtrl::GetSelectedItem( )以获取树控件的子项句柄HT转载 2011-01-24 11:12:00 · 406 阅读 · 0 评论 -
VC中字符串和数字转换的函数(转)
<br />vc中字符串和数字转换的函数:atoi,atol,strtod,strtol,strtoul 类型转换<br />atoi,atol,strtod,strtol,strtoul实现类型转换<br /><br />atof(将字符串转换成浮点型数)<br />相关函数<br />atoi,atol,strtod,strtol,strtoul<br />表头文件<br />#include <stdlib.h><br />定义函数<br />double atof(const char *nptr)转载 2011-01-24 11:14:00 · 365 阅读 · 0 评论 -
Windows程序中的键盘与鼠标
<br />键盘在应用程序中的应用<br />键盘上的键在按下或释放某键时产生一个唯一的标识值(扫描码)。<br />扫描码是依赖于具体设备的,为达到设备无关性的要求,往往使用与具体设备无关的虚拟码,虚拟码是由Windows系统定义的与设备无关的键的标识。设备驱动程序截取键的扫描码将其翻译成虚拟码。<br />按下讲盘上的按键将产生一条消息,它包含扫描码、虚拟码以及其他与击键有关的消息。<br />虚拟码是一种与设备无关的键盘编码,它的值存放在键盘消息的wParam参数中,用以标识哪一个键被按下或释放,最常转载 2011-01-24 11:15:00 · 656 阅读 · 0 评论 -
VC中ADO数据库编程
<br />VC++ADO连接数据库<br />一、ADO简介 <br />ADO(ActiveX Data Object)是Microsoft数据库应用程序开发的新接口,是建立在OLE DB之上的高层数据库访问技术,请不必为此担心,即使你对OLE DB,COM不了解也能轻松对付ADO,因为它非常简单易用,甚至比你以往所接触的ODBC API、DAO、RDO都要容易使用,并不失灵活性。本文将详细地介绍在VC下如何使用ADO来进行数据库应用程序开发,并给出示例代码。 本文示例代码 <br />二、基本流程 <转载 2011-04-19 09:29:00 · 301 阅读 · 0 评论