Windows平台专属
文章平均质量分 52
雪人2015
知其然并知其所以然
展开
-
托盘图标(NotifyIcon)详解
Windows xp下的托盘功能实现起来很简单,但如果要做一些高级一点的实现效果,以及良好的UI友好操作,那就需要下一小番功夫了。这里没有采用自己创建Tip窗口的方式,而是使用windows自带的Shell_NotifyIcon来完成一些还算Ok的效果。托盘中我们经常要显示提示,NOTIFYICONDATA中给了我们相应的参数。个人建议使用InfoTip。而不要采用最简单的Tip。首先是Inf原创 2012-09-04 08:51:25 · 4060 阅读 · 0 评论 -
MDI的多种文档类型
由于具体细节比较复杂,只说一下大道上的。回想不起来就看《深入浅出MFC》。嘿嘿! 要实现多文档类型,主要是要添加相应的DocTemplate,然后在用App里面的AddTemplate将文档类型保存起来。在创建新的文档类型是:要分别为原来的文档类型准备相应的一套资源(菜单,图标等)(手动添加),以及添加这套资源对应的字符串资源。然后就完成相应的CDoc类,CView类,CMDIChildF原创 2011-02-23 22:55:00 · 1383 阅读 · 0 评论 -
MFC零散知识点收集站
1:截获消息改写CWinApp的PreTranslateMessage()函数,用来在消息被派送的TranslateMessage和DispatchMessage之前对消息进行过滤。所以可以在这里对消息进行截获。截获的方法是直接返回return TRUE; 如果只是简单对消息进行加工,就采用默认的return CWinApp::PreTranslateMessage(pMsg);原创 2011-02-19 13:59:00 · 814 阅读 · 0 评论 -
非MFC规则DLL用法总结
今天让我总结以前前几天断断续续从网上学习的DLL用法。首先呢?首先呢DLL可以看做可以从其他地方拿过来用的容纳变量和函数的仓库,我们的仓库经历了“无库-静态链接库-动态链接库”。 首先我们看看静态链接库和动态链接库的区别。静态链接库在和你程序编译的时候把它本身也加到到exe文件里面了,当然是指它本身被编译后的二进制码。而动态链接库则不然,我们一般通过动态链接库的lib文件和原创 2011-02-16 23:19:00 · 1979 阅读 · 0 评论 -
让VS调试器帮你格式化显示自定义数据
这里讲解的是针对vs2010之前的版本的(即vs2005,vs2008。因为vs2010对于这方面有了一些改动),并以CEGUI 0.7.9版本(因为这个版本的CEGUI的String对象采用统一utf32编码,调试时很难查看字符串信息)中的CEGUI::String类型为例讲解,首先介绍一点此版本的CEGUI::String类需要注意的地方。有一个很重要的地方需要注意,0.7.9的版原创 2013-06-05 19:56:16 · 3932 阅读 · 1 评论 -
CEGUI::String类分析
CEGUI::String类算是一个不错的类,但是说实话,这个类让非英文国度的IT们不是很舒服。比如,自我们学习C++编程以来,我们一直使用这样的输出语句:std::cout 其中"名字:"使用的是多字节编码(ASCII编码的扩充版本)。我们的控制台能正确显示这些中文文本。但是当我们初次了解并使用CEGUI的时候,却无法使用这样简单的功能:CEGUI::String str原创 2013-07-15 10:26:06 · 6370 阅读 · 0 评论 -
Directly Mapping Texels to Pixels (Direct3D 9)
原文地址:Directly Mapping Texels to Pixels (Direct3D 9)When rendering 2D output using pre-transformed vertices, care must be taken to ensure that each texel area correctly corresponds to a single pixe转载 2013-07-23 10:18:03 · 5904 阅读 · 0 评论 -
CEGUI重点难点集
感觉CEGUI确实不想很多商业成熟的SDK,有些地方的表现不尽如人意,但是毕竟是个开源项目,使得我们能根据自己需求定制自己的功能。但在定制需求之前,我们需要对CEGUI进行一个比较详细的了解才能够得心应手的定制需求。下面就将学习CEGUI过程中遇到的重点难点罗列起来,方便自己和网友一起学习。动画系统中的Affector,在写CEGUI的 .animation 文件的时候,我们需要要了解每个原创 2013-07-16 09:51:30 · 5884 阅读 · 0 评论 -
CEGUI添加自定义控件
CEGUI 添加自定义控件 全流程原创 2013-08-01 09:20:18 · 15131 阅读 · 1 评论 -
CSpitterWnd的自动调整大小
通过CDocTemplate我们可以再在新建窗口的时候,其中的创建过程《深入浅出MFC》已经讲解,这里我大体缕一下。1:通过找到相应的文档模板。2:通过文档模板动态创建相应的文档类,框架类,视图类。3:三者的创建顺序是,先文档类,后创建框架类,框架类通过LoadFrame完成创建,然后发出的WM_CREATE消息,会激发OnCreate函数,而此函数调用OnCreateHelpre,此原创 2011-02-23 13:54:00 · 4223 阅读 · 5 评论 -
《Advanced Windows Debugging》学习笔记
看完了很久,也一直没有完成这篇博客,在项目使用中,大多数还是用到其中的一些命令去解析,目前没有太多机会,可以让自己用基本命令去锻炼一下“遍历堆链表”等高级调试技巧。看完这本书给我最大的感觉是:当你觉得你有些比较难解决的调试或检测问题的时候,不妨查一查是不是有相应的工具。开发过程中需要的各种分析、检测、调试工具,这本书上都有或多或少的极少。WinDbg自带的堆栈解析能力比vs强很多。每当程序宕掉,发原创 2014-06-26 11:29:10 · 5902 阅读 · 0 评论 -
完成端口(CompletionPort)详解 - 手把手教你玩转网络编程系列之三
手把手叫你玩转网络编程系列之三 完成端口(Completion Port)详解 ----- By PiggyXP(小猪)前 言 本系列里完成端口的代码在两年前就已经写好了,但是由于许久没有写东西了,不知该如何提笔,所以这篇文档总是在酝酿之中……酝酿了两年之后,终转载 2014-11-14 11:13:18 · 8016 阅读 · 0 评论 -
ACM(访问控制模型),Security Identifiers(SID),Security Descriptors(安全描述符),ACL(访问控制列表),Access Tokens(访问令牌)
对于《windows核心编程》中的只言片语无法驱散心中的疑惑。就让MSDN中的解释给我们一盏明灯吧。如果要很详细的介绍,还是到MSDN仔细的看吧,我只是大体用容易理解的语言描述一下。 windows的安全访问控制(ACM,access control mode)是由两部分组成的。一个是访问令牌(access tokens),另一个是安全描述符(security identifiers)。原创 2011-04-20 00:44:00 · 3908 阅读 · 1 评论 -
MFC 多视图同步画图解决方案
今天看《深入浅出MFC》时,看到要做多视图同步画图问题,此书上刚介绍完单视图画图后,引出多视图画图的问题(多视图是指一个子视图窗口中多个视图区域,由SpliiterWnd分割生成的)。存在相互通知,并特别强调绘图效率的问题。我迫不及待的用自己的想法实现了这个高效率绘图问题。后来看了一下书上的方法,确实也不错,但感觉比我的绘图效率低。我的绘图方法其实是因为书上开始讲的单视图绘图的方法,给了我一个用此原创 2011-02-19 11:47:00 · 4028 阅读 · 0 评论 -
vs工程技巧
1:Post-Build Event在大型的项目工程中,一个非常实用的技巧就是Post-Build Event。这个是一个编译后事件,在这里我们可以写很多命令语句。直到最近才发现批处理文件是多么的好用,简单。xcopy是多么的强大。 xcopy 源文件(文件夹) 目标文件(文件夹) 如果一个批处理文件要调用另一个批处理文件,而且另一个批处理文件是采用相对路径编写的,那么我原创 2012-06-19 23:26:03 · 792 阅读 · 0 评论 -
文件浏览对话框
这次在工作中碰到了文件浏览对话框,以前的时候也做过,不过没有做过文件浏览对话框同时实现打开文件,和打开文件夹两种功能的同时实现。通过查阅资料,一上午一开始使用SHBrowseForFolder()而后有使用CFileDialog,一开始以为SHBrowseForFolder只能用于文件夹,CFileDialog可以用于文件和文件夹的打开。但事实证明SHBrowseForFolder()是多么的好用原创 2012-06-23 15:01:20 · 1057 阅读 · 0 评论 -
VC 向windows系统菜单中添加菜单项---Windows shell扩展编程
vs2008的方法和vc6.0做法几乎一样。下面是转载一位新浪博客-丢丢的。 打开VC6,新建一个工程,选ATL COM APPWIZARD,工程名写BlogTest。然后OK。如果要用到MFC,那把Support MFC打上勾,然后按完成。 新工程生成完毕后,在Class View里根结点按右键,选New Atl Object...,再选Simple Object,在short转载 2011-06-22 20:36:00 · 3783 阅读 · 1 评论 -
Windows编程的方方面面
(一)控件滚动条 SCROLLINFO结构中的nPage和nPos是有范围限制的,超出范围设置时,Windows会自动纠正。00 所以不要总以为自己设置了页面大小,设置了滚动条位置,滚动条的页面和位置就一定会如你所设置。 编辑框在使用Edit_SetSel的时候,一定要将焦点定格在Edit上,否则选择效果不显示。 (二)编程技巧原创 2011-04-13 21:12:00 · 880 阅读 · 0 评论 -
MFC工作线程中获得视图类指针问题
今天写的代码很无语,原来稳稳妥妥的代码,在线程中却神乎其神的不管用了。我查了网上的资料,只收集到一位高手的留言:通常来讲,在MFC中,跨线程是不能传递CWnd对象指针的。因为在每个线程中都有一个自己的内部map,该map记录了HWND和与之对应的CWnd对象。当一个CWnd对象被创建时,它的HWND和CWnd对象指针就会被记录到该线程中的map,但其他的线程的map没有记录。 当跨线程传递C原创 2011-02-24 21:07:00 · 3402 阅读 · 0 评论 -
chHANDLE_DLGMSG(windows核心编程)讲解
看完《Windows程序设计》后开始看《windows核心编程》,结果看第一个案例的时候就很惊人的发现,Jeffery大牛的代码很深奥。乍一看好像没有包含《windows.h》。看看包含的头文件发现,CmnHdr.h中已经包含了《windows.h》。而CmnHdr.h中的代码更吓人,如果没有讲解,不知道怎么看才好。后来才知道原来书的最后有专门的搭建环境的介绍,基本上全面的讲解了CmnHd原创 2011-04-17 18:00:00 · 4565 阅读 · 4 评论 -
WINDOW程序设计-渐进
自从3月2日下午4:20又几分钟收到这本经典巨作《window程序设计》我就很兴奋,这本书给我的感觉就想《C++Primer Plus》,或者更好,因为它们两者都兼备了一个共同特点:让你消除基础盲点,解除你从前的疑惑,一切都那么有始有终。 都过了10天了,现在才看到第十章,哎,是有点慢,但是因为没有一味看书,而是基本上把书上所有出现过的程序,以自己理解并独立写出的方式进行着。自己感觉还可以原创 2011-03-13 00:45:00 · 2409 阅读 · 2 评论 -
tlhelp32.h,IMAGE_ODS_HEADER,IMAGE_NT_HEADER
tlhelp32.h主要是用于枚举系统中某个时刻的进程,线程,模块,堆。快照系统中本身维护着进程链表,线程链表,模块链表和堆链表。而快照是这个模型的某个时候的复制品。通过CreateToolhelp32Snapshot可以创建快照。通过快照,再利用Process32First和Process32Next。我们能够方便走访进程链表。同理可以走访其他链表。注意走访堆链表,使用HEAPL原创 2011-04-20 23:35:00 · 2316 阅读 · 0 评论 -
Windows Explorer(浏览)对话框和遍历文件夹及其子目录函数(FindFisrFile FindNextFile CloseFind)使用
Windows浏览窗口就是你在安装程序的时候经常叫你选择安装在哪个目录里面的对话框,我们一般使用这个对话框来获得用户选择的目录。 (一)主要牵扯到的函数是:PIDLIST_ABSOLUTE SHBrowseForFolder(lpbi) 此函数会调用Windows Explorer(浏览)对话窗口,如果用户点击确定的话,会返回一个PIDLIST_ABSOLUTE(绝对路径标识序原创 2011-04-12 02:00:00 · 2769 阅读 · 0 评论 -
EM square
看《windows程序设计》中的一些字体方面的信息,不是很明白,通过查阅得到了一些重要信息。 在字体排版中经常使用EM square,每一种TrueType字体都有一个EM square,而且只有TrueType的字体才有这个EM square。EM square其实就是在实际设计字体时用到的正方形,而这个正方形里面有很多个小方格。一般来说的话,一个EM square里面水平方向,垂直方向原创 2011-04-06 23:23:00 · 2188 阅读 · 0 评论 -
MFC的工作线程揭秘-CWinThead自动删除揭秘
呵呵,说揭秘其实是说给自己听的,因为今天做了个MFC多线程优先级的例子,在线程里面使用了AfxGetMainWnd()->MDIGetActive(),返回值类型暂不讨论,就是这套东西在线程中具有诡异现象,查了一点说是线程里面有个map记录了窗口指针和其句柄的映射关系,使得有些指针不好使。等查明后在补全这里。 今天主要写的是另一个问题,创建工作线程时,AfxBeginThread返回的CW原创 2011-02-24 20:47:00 · 6593 阅读 · 4 评论 -
libevent IOCP完整教程
将尽量讲解如何使用 libevent 2.1.4-alpha IOCP(2.0.21 版也试过,不过2.1.4修改了部分之前版本的IOCP bug,所以使用IOCP的话,个人感觉2.1.4比较适合),并将 Programming with Libevent 没有讲解到的有关 IOCP 的部分加以补充,指导你正确使用 libevent IOCP。原创 2014-11-10 19:25:24 · 14327 阅读 · 1 评论