现在位置: 首页 > 自动控制 > 工业·编程 > 文章
2012-08-06 21:21 工业·编程 ⁄ 共 4902字 评论 1 条
前一段,帮人写了个小控件,又温习了一遍Windows消息处理机制,现在把一些知识点总结出来,供大家参考. 1.窗口    Windows程序是由一系列的窗口构成的,每个窗口都有自己的窗口过程,窗口过程就是一个拥有有固定 Signature 的 C函数,具体格式如下:    LRESULT CALLBACK WindowProc(HWND hwnd,        UINT uMsg,        WPARAM wPa...
阅读全文
    如果函数返回值是一个对象,要考虑 return 语句的效率。例如          return String(s1 + s2);     这是临时对象的语法,表示“创建一个临时对象并返回它” 。     不要以为它与“先创建一个局部对象 temp 并返回它的结果”是等价的,如 String temp(s1 + s2); return temp;     实质不然,上述代码将发生三件...
阅读全文
2012-08-06 21:10 工业·编程 ⁄ 共 3207字 暂无评论
    关于C语言中return的一些总结:return是C++预定义的语句,它提供了种植函数执行的一种放大。当return语句提供了一个值时,这个值就成为函数的返回值.     说到return,有必要提及主函数的定义,下面是从网络上找到的资料,好好消化吧,对了解主函数中返回值的理解有很大的帮助.     很多人甚至市面上的一些书籍,都使用了void main( ) ,其实这是错误的。C/C++ 中从来没有定义过vo...
阅读全文
2012-08-06 20:56 工业·编程 ⁄ 共 2053字 暂无评论
如果函数正常执行,则返回 S_OK,同时真正的函数运行结果则通过参数指针返回。如果遇到了异常情况,则COM系统经过判断,会返回相应的错误值。 HRESULT         值          含义 S_OK            0x00000000  成功 S_FALSE       ...
阅读全文
2012-08-06 06:55 工业·编程 ⁄ 共 1547字 暂无评论
1、消息驱动与消息循环 “消息”是windows运行机制中一个基本而又重要的概念。消息是一个报告事件发生的通知,消息驱动是围绕消息的产生与处理展开的,并依靠消息循环机制来实现。 从程序设计的观点看,某条消息可被视为某个事件的发生,比如点击鼠标。事件即可以由用户引发,也可以由应用程序产生,当然Windows本身也能发出消息。Windows应用程序的消息来源有4种:输入消息,控制消息,系统消息,用户消息。 Windows是一个多任务...
阅读全文
2012-08-06 06:53 工业·编程 ⁄ 共 4464字 暂无评论
    消息的传递与发送是Windows应用程序的核心所在,任何事件的触发与响应均要通过消息的作用才能得以完成。在SDK编程中,对消息的获取与分发主要是 通过消息循环来完成的,而在MFC编程中则是通过采取消息映射的方式对其进行处理的。相比而言,这样的处理方式要简单许多,这也是符合面向对象编程中尽可 能隐含实现细节的原则。一个完整的MFC消息映射包括对消息处理函数的原型声明、实现以及存在于消息映射中的消...
阅读全文
2012-08-06 06:51 工业·编程 ⁄ 共 995字 暂无评论
    用户可以为了特定的目的而定义自己的消息,这些消息也称为自定义消息。进行自定义消息的方法很简单,一般有两种:一种是利用ON_MESSAGE宏,另外一种就是创建自己的消息映射宏,这一种方法可以定制消息的参数类型,而不像前者只能使用固定的消息参数类型。但是一般情况下不需要定制消息的参数类型,因此这里对此不予介绍。本节主要介绍第一种比较常用的方法。     预定义常量值WM_USER(0x040...
阅读全文
2012-08-06 06:50 工业·编程 ⁄ 共 598字 暂无评论
    在VC Debug版本里,栈中分配的值都会先用0xCCCCCCCC来处理一下,所以大家在Debug模式下调试程序发现在引用0xCCCCCCCC这样的值, 就说明在试图使用一个没有初始化的值。这就是在Debug模式下调试的好处之一,如果在Release模式下,系统就不会用0xCCCCCCCC来处理一 下了。至于为什么选择0xCCCCCCCC大概是因为 端点中断int 3 对应的机器码就是0xCC吧,我也不是很有把握。     用固 定的地址是可...
阅读全文
UNICODE:它是用两个字节表示一个字符的方法。比如字符'A'在ASCII下面是一个字符,可'A'在UNICODE下面是两个字符,高字符用0填充,而且汉字'程'在ASCII下面是两个字节,而在UNICODE下仍旧是两个字节。UNICODE的用处就是定长表示世界文字,据统计,用两个字节可以编码现存的所有文字而没有二义。 MBCS,它是多字节字符集,它是不定长表示世界文字的编码。MBCS表示英文字母时就和ASCII一样(这也是我们容易把MBCS和ASCII搞混的原因...
阅读全文
2012-08-06 06:44 工业·编程 ⁄ 共 2336字 暂无评论
DWORD 32-bit unsigned integer. This type is declared in WinDef.h as follows: typedef unsigned long DWORD; 1个二进制位称为1个bit,8个二进制位称为1个Byte,也就是1个字节(8位),2个字节就是1个Word(1个字,16位),则DWORD(DOUBLEWORD)就是双字的意思,两个字(32位)</CA> windef.h中 typedef unsigned long DWORD; 关于DWORD使用中重要的一点。DWORD 现在表示32bit 无符号整数,即使以后Windows ...
阅读全文