【转载】VC 窗口处理函数
摘要:1.HWND CreateWindow( LPCTSTR lpClassName, LPCTSTR lpWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HANDLE hlnstance, LPVOID lpParam);参数lpClassName 指向一个空结束的字符串或整型数atom。如果该参数是一个整型量,它是由此前调用theGlobalAddAtom函数产生的全局量。这个小于0xC000的16位数必须是lpClassNam...
阅读全文
posted @
2012-09-26 11:55
克劳德曼
阅读(586)
推荐(0)
【转载】谈谈父窗口和所有者窗口
摘要:一、概念和区别 在windows系统中,每个窗口对象都对应有一个数据结构,形成一个list链表。系统的窗口管理器通过这个list来获取窗口信息和管理每个窗口。这个数据结构中有四个数据用来构建list,即child、sibling、parent、owner四个域。 所以我们可以看到,窗口之间的关系有两种:owner-owned 关系和 parent-child关系。前者称之为拥有/被拥有关系,后者称之为父/子关系。在这篇文字中,我把owner窗口称之所有者窗口。换句话说,一个窗口在有一个父窗口(parent)的同时,还可能被不同的窗口拥有(owner),也可以有自己的子窗口(child)...
阅读全文
posted @
2012-09-26 11:47
克劳德曼
阅读(212)
推荐(0)
【转载】Window 窗口层次关系
摘要:相信在Window下面编程的很多兄弟们都不是很清楚Window中窗口的层次关系是怎么样的,这个东西很久已经研究过一下,后来又忘记了,今天又一次遇到了这个问题,所以便整理一下。下面就说说Window中桌面(Deskkop)以及顶层窗口,以及子窗口之间的关系。在Window的图形界面下,最基本显示信息的元素就是窗口,每一个Window窗口都管理着自己与其他窗口之间的关系和自身的一些信息,如:是否可见,窗口的所有者,窗口的父/子关系等等信息,当窗口创建、销毁、显示的时候,就会用到这些信息。在每一个窗口实例中,有四个元素被窗口管理器用来建立窗口管理链表。Child:指向窗口子窗口的句柄Parent:指
阅读全文
posted @
2012-09-26 11:37
克劳德曼
阅读(502)
推荐(0)
【转载】永远的窗口(个人对窗口的拙见)
摘要:果windows一直存在下去,窗口这个话题也许是永恒的……1.一切皆窗口在我看来桌面上的一切都是窗口,桌面本身是窗口,开始菜单是窗口,桌面上永远置顶的播放器是个置顶的窗口,工具栏是个子窗口…….不仅我这么看,Spy++也这么看,如下图:图1‑1Spy++和桌面一切都是窗口,窗口错落有致,成为界面树上的翩翩叶子,组织成了我们所看到的整个Windows系统用户界面。我们首先通过一个普普通通典型的窗口,来分析一下窗口的组成:图1‑2普普通通的窗口一个窗口是有很多界面元素的,比如标题栏,菜单栏,状态栏等等。但实际上可以把这些归为两类,一类是客户区,客户区就是整个窗口中间的部分,在图中已经标示出来。客户
阅读全文
posted @
2012-09-26 11:28
克劳德曼
阅读(245)
推荐(0)
【转载】关于WS_CLIPCHILDREN和WS_CLIPSIBLINGS的理解
摘要:我是个喜欢瞎琢磨的人。尤其是这几天心情非常郁闷。于是开始琢磨了…….琢磨的问题就是WS_CLIPCHILDREN和WS_CLIPSIBLINGS两种窗口样式的理解。1.求助MSDN 我的第一步当然是求助MSDN。在MSDN里面有详细的解释。1.1WS_CLIPCHILDREN WS_CLIPCHILDREN样式从字面上可以理解成ClipChildren,裁减子窗口。 MSDN里的E文解释:Excludes the area occupied by child windows when drawing occurs within the parent window. This styl...
阅读全文
posted @
2012-09-26 11:25
克劳德曼
阅读(237)
推荐(0)
【转载】Windows字符集的统一与转换
摘要:Windows字符集的统一与转换一、字符集的历史渊源在Windows编程时经常会遇到编码转换的问题,一直以来让刚接触的人摸不着头脑。其实只要弄清Win32程序使用的字符编码方式就清楚了,图1展示了一个Win32控制台项目的属性中的字符集选项。这里有两个不同的字符集:一个是Unicode字符集,另一个就是多字节字符集MBCS(Multi-ByteCharacterSystem),即熟知的ANSI字符集。图1 Visual Studio Win32项目属性或许有人和我一样对这么一群“凭空出现”的字符集既痛恨又好奇,痛恨的是为什么不使用统一的方式对字符编码,还要在程序中不断的转换。好奇的原因亦是如此
阅读全文
posted @
2012-08-29 08:47
克劳德曼
阅读(242)
推荐(0)
【转载】CImage类
摘要:我们知道,Visual C++的CBitmap类和静态图片控件的功能是比较弱的,它只能显示出在资源中的图标、位图、光标以及图元文件的内容,而不像VB中的Image控件可 以显示出绝大多数的外部图像文件(BMP、GIF、JPEG等)。因此,想要在对话框或其他窗口中显示外部图像文件则只能借助于第三方提供的控件或代码。 现在,MFC和ATL共享的新类CImage为图像处理提供了许多相应的方法,这使得Visual C++在图像方面的缺憾一去不复返了。CImage类概述 CImage是MFC和ATL共享的新类,它能从外部磁盘中调入一个JPEG、GIF、BMP和PNG格式的图像文件加以显示,而且这些...
阅读全文
posted @
2012-08-28 13:16
克劳德曼
阅读(206)
推荐(0)
【转载】如何计算当前进程的CPU占用率
摘要:由于测试一个解码器的项目,很长时间都在反复进行domain knowledge的学习,再加上自己是一个测试新手,对于测试代码撰写啥的还很是生嫩,前一阵被要求在性能测试中,最好在测试时能够计算出解码进程的CPU占用率,做为我们参考的一种性能参数。于是乎搜寻并参考了网络中的N多方法,并在项目中进行实际的实验调试,由此略了解了一点点如何计算进程CPU占用率的代码方法,在此将最终采用的方法之一记录如下:刚开始自己从win32 API开始寻找解决策略,后来发现并没有提供直接得到CPU占用率的函数。其过程中考虑过使用NtQuerySystemInformation和GetProcAddress等,通过在一
阅读全文
posted @
2012-05-19 14:15
克劳德曼
阅读(794)
推荐(0)
【原创】Windows的本地时间(LocalTime)、系统时间(SystemTime)、格林威治时间(UTC-Time)、文件时间(FileTime)之间的转换
摘要:首先,先从简单的说起,本地时间(LocalTime),也就是系统设置时区的当前时间!比如说当前系统设置的时区为“(UTC+08:00)北京,重庆,香港特别行政区,乌鲁木齐”(东八区),系统的右下角通知区域显示的时间为“2012/5/18 16:57”,那么这个时间就是当前系统的本地时间! 要说清楚什么是系统时间(SystemTime)之前先来了解一下格林威治时间。本初子午线被定义为通过格林威治经线的位置,相对这条经线的时区向东递增,向西递减,每隔一个时区,相差一个小时。那么,上面例子中的东八区的时间就是相对于格林威治时间加上了八个小时!而Windows的系统时间是就是格林威治时间!知道...
阅读全文
posted @
2012-05-18 21:16
克劳德曼
阅读(3236)
推荐(4)
【转载】如何在对话框程序中让对话框捕获WM_KEYDOWN消息
摘要:如何在对话框程序中让对话框捕获WM_KEYDOWN消息作者:孙鑫日期:2003-9-4 在对话框程序中,我们经常是利用对话框上的子控件进行命令响应来处理一些事件。如果我们想要让对话框(子控件的父窗口)类来响应我们的按键消息,我们可以通过ClassWizard对WM_KEYDOWN消息进行响应,当程序运行后,我们按下键盘上的按键,但对话框不会有任何的反应。这是因为在对话框程序中,某些特定的消息,例如按键消息,它们被Windows内部的对话框过程处理了(即在基类中完成了处理,有兴趣的读者可以查看MFC的源代码),或者被发送给子控件进行处理,所以我们在对话框类中就捕获不到按键的消息了。 既然我们..
阅读全文
【笔记】应用程序中使用系统主题外观
摘要:【转载】VC++6.0 MFC应用程序使用XP主题外观一、实现原理 微软为Windows XP提供了Themes服务。Themes可以让程序具有“XP风格”,看起来更美观,因为微软更新了Comctl32.dll(ver 6.0)这个“XP风格”的控件。微软还为了保留传统的Windows界面风格,特地留下了Comctl32.dll v5.8。VC6的推出时间早于WinXP,因此VC6的程序默认是不使用“xp风格”的。 程序使用xp风格主要是内置了manifest这东东。因此只要让VC6的程序中包含即可。包含可以外置,也可以内置为资源。二、实现方法1.打开你的VC6 工程,找到资源试图(Reso.
阅读全文