windows设计
文章平均质量分 65
a199228
这个作者很懒,什么都没留下…
展开
-
模块句柄(实例句柄)和句柄的区别
解释一:1.模块的概念一个模块代表的是一个运行中的exe文件或dll文件,用来代表这个文件中所有的代码和资源,磁盘上的文件不是模块,装入内存后运行时就叫做模块。一个应用程序调用其他DLL中的API时,这些DLL文件被装入内存,就产生了不同的模块,为了区分地址空间中的不同模块,每个原创 2011-07-21 12:08:05 · 7071 阅读 · 3 评论 -
windows时间函数
介绍 我们在衡量一个函数运行时间,或者判断一个算法的时间效率,或者在程序中我们需要一个定时器,定时执行一个特定的操作,比如在多媒体中,比如在游戏中等,都会用到时间函数。还比如我们通过记录函数或者算法开始和截至的时间,然后利用两者之差得出函数或者算法的运行时间。编转载 2011-09-15 12:53:00 · 729 阅读 · 0 评论 -
WINDOWS内核对象
WINDOWS内核对象 一.前言 Windows中有很多像进程对象、线程对象、文件对象等等这样的对象,我们称之为Windows内核对象。内核对象是系统地址空间中的一个内存块,由系统创建并维护。内核对象为内核所拥有,而不为进程所拥有,所以不同进程可以访问同一个内核对原创 2011-09-15 20:37:06 · 656 阅读 · 0 评论 -
线程、线程句柄、线程ID
什么是句柄:句柄是一种指向指针的指针。我们知道,所谓指针是一种内存地址。应用程序启动后,组成这个程序的各对象是住留在内存的。如果简单地理解,似乎我们只要获知这个内存的首地址,那么就可以随时用这个地址访问对象。但是,如果您真的这样认为,那么您就大错特错了。我们知道,Windows是一个以虚拟内存为基础的操作系统。在这种系统环境下,Windows内存管理器经常在内存中来回移动对象,依此来满足各种应原创 2011-11-21 13:36:43 · 3693 阅读 · 0 评论 -
HOOK API入门篇(一)
Windows系统是建立在事件驱动的机制上的,说穿了就是整个系统都是通过消息的传递来实现的。而钩子是Windows系统中非常重要的系统接口,用它可以截获并处理送给其他应用程序的消息,来完成普通应用程序难以实现的功能。钩子可以监视系统或进程中的各种事件消息,截获发往目标窗口的消息并进行处理。这样,我们就可以在系统中安装自定义的钩子,监视系统中特定事件的发生,完成特定的功能,比如截获键盘、鼠标的输入,转载 2011-11-26 16:55:32 · 2388 阅读 · 0 评论 -
HOOK API入门篇(三)
3.卸载钩子 当不再使用钩子时,必须及时卸载。简单地调用函数 BOOL UnhookWindowsHookEx( HHOOK hhk)即可。 值得注意的是线程钩子和系统钩子的钩子函数的位置有很大的差别。线程钩子一般在当前线程或者当前线程派生的线程内,而系统钩子必须放在独立的动态链接库中,实现起来要麻烦一些。 在CChildView::OnPaint()添加如下代码:转载 2011-11-26 16:57:15 · 1063 阅读 · 0 评论 -
HOOK API 入门篇(六)
10)编译项目生成mousehook.dll。 2.创建钩子可执行程序 (1)用MFC的AppWizard(EXE)创建项目Mouse; (2)选择“基于对话应用”并按下“完成”键; (3)编辑对话框,删除其中原有的两个按钮,加入静态文本框和编辑框,用鼠标右键点击静态文本框,在弹出的菜单中选择“属性”,设置其标题为“鼠标所在的窗口标题”; (4)在Mous转载 2011-11-26 16:59:37 · 1133 阅读 · 0 评论 -
HOOK API入门篇(五)
(8)类Cmousehook的成员函数的具体实现: Cmousehook::Cmousehook() //类构造函数 { } Cmousehook::~Cmousehook() //类析构函数 { stophook(); } BOOL Cmousehook::starthook(HWND hWnd) //安装钩子并设定接收显示窗口句转载 2011-11-26 16:58:49 · 865 阅读 · 0 评论 -
HOOK API入门篇(二)
8、WH_KEYBOARD Hook 在应用程序中,WH_KEYBOARD Hook用来监视WM_KEYDOWN and WM_KEYUP消息,这些消息通过GetMessage or PeekMessage function返回。可以使用这个Hook来监视输入到消息队列中的键盘消息。9、WH_KEYBOARD_LL Hook WH_KEYBOARD_LL Hook监视输入到线程消息转载 2011-11-26 16:56:21 · 1548 阅读 · 0 评论 -
HOOK API入门篇(四)
下面说说在VC6中全局共享数据的实现 在主文件中,用#pragma data_seg建立一个新的数据段并定义共享数据,其具体格式为: 仅定义一个数据段还不能达到共享数据的目的,还要告诉编译器该段的属性,有两种方法可以实现该目的(其效果是相同的),一种方法是在.DEF文件中加入如下语句:SETCTIONS shareddata READ WRITE SHARED转载 2011-11-26 16:58:00 · 942 阅读 · 0 评论 -
PeekMessage与GetMessage .
BOOL PeekMessage( LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg);当消转载 2011-09-13 21:04:24 · 736 阅读 · 0 评论 -
Windows消息大全
WM_NULL = $0000; WM_CREATE = $0001; 应用程序创建一个窗口 WM_DESTROY = $0002; 一个窗口被销毁 WM_MOVE = $0003; 移动一个窗口 WM_SIZE = $0005; 改变一个窗口的大原创 2011-09-13 20:25:22 · 533 阅读 · 0 评论 -
WM_CREATE消息响应函数和WM_INITDIALOG消息响应函数之区别
在响应WM_CREATE消息响应函数的时候,对话框及子控件还未创建完成,亦是说只是通知系统说要开始创建窗口啦,这个消息响应完之后,对话框和子控件才开始创建。因此在此消息响应函数中无法对控件进行修改和初始化。 而WM_INITDIALOG消息响应函数是在程序原创 2011-09-11 20:57:07 · 758 阅读 · 0 评论 -
UpdateWindow
只将窗口显示区域标记为无效以产生WM_PAINT消息,对于某些应用程序来说也许不是完全令人满意的选择。在呼叫InvalidateRect之后,Windows将WM_PAINT消息放入消息队列中,最后由窗口消息处理程序处理它。然而,Windows将WM_PAINT消息当成低优先级消转载 2011-07-22 23:29:54 · 4077 阅读 · 0 评论 -
wParam和lParam消息
1 WM_PAINT消息,LOWORD(lParam)是客户区的宽,HIWORD(lParam)是客户区的高 2 滚动条WM_VSCROLL或WM_HSCROLL消息,LOWORD(wParam)指出了鼠标对滚动条的操作。比如上、下、左、右、翻页、移动等。 3 击原创 2011-07-23 11:12:19 · 1611 阅读 · 0 评论 -
Win32程序开发流程
Windows程序分为“程序代码”和”UI资源”两大部分,两部分最后 以RC编译器整合为一个完整的EXE档案。所谓UI资源是指功能菜单、对话框外貌、程序图标、光标形状等等东西,实际内容借助各种工具产生,并以各种扩展名的文件存在,如.ico、.bmp、、.cur等等。程序员必须在一转载 2011-07-23 14:44:35 · 1412 阅读 · 0 评论 -
SendMessage函数
首先 我们了解一下Windows的消息机制。Windows是一个消息驱动式系统,Windows消息提供应用程序与应用程序之间,应用程序与Windows系统之间进行通信的手段。举个例子,打开记事本程序,该程序有一个 “文件“菜单。 那么,在运行该程序的时候,如果用户单击“文件菜单“原创 2011-07-23 13:00:20 · 20260 阅读 · 0 评论 -
不同的颜色用RGB来显示
黑色 R G B 黑色 0 0 0 象牙黑 41 36 33 灰色 R G B 泠灰 128 138 135 灰色 192 192 192 石板灰 112 128 144 暖灰色 128 128 105 白色 R G B 古董白 250原创 2011-09-03 15:45:07 · 953 阅读 · 0 评论 -
WM_CREATE和WM_INITDIALOG消息响应函数之区别,以及MFC应用程序中处理消息的...
在响应WM_CREATE消息响应函数的时候,对话框及子控件还未创建完成,亦是说只是通知系统说要开始创建窗口啦,这个消息响应完之后,对话框和子控件才开始创建。因此在此消息响应函数中无法对控件进行修改和初始化。 而WM_INITDIALOG消息响应函数是在程序运行时转载 2011-09-05 22:54:37 · 1479 阅读 · 0 评论 -
WINDOWS 逻辑坐标 设备坐标 屏幕坐标 客户区坐标 .
设置坐标映射 (1)Windows坐标系统Windows坐标系分为逻辑坐标系和设备坐标系两种,GDI支持这两种坐标系。一般而言,GDI的文本和图形输出函数使用逻辑坐标,而在客户区移动或按下鼠标的鼠标位置是采用设备坐标。 逻辑坐标系是面向DC的坐标系,这种坐转载 2011-09-07 20:09:43 · 1247 阅读 · 0 评论 -
Windows基本的数据类型
下面列出较为常用的数据类型,大体包括了字符型、整型、浮点型、布尔型、指针型以及Windows应用程程特有的句柄型,表示指针型的数据类型往往以P或LP作为前缀,而句柄型总是冠以H。 类型 定义------------------原创 2011-09-11 14:39:28 · 469 阅读 · 0 评论 -
让程序只运行一个实例的四种方法
综述:让一个程序只运行一个实例的方法有多种,但是原理都类似,也就是在程序创建前,有窗口的程序在窗口创建前,检查系统中是否已经设置了某些特定标志了,如果有说明已经有一个实例在运行了,则当前程序通知用户怎样怎样,然后程序退出,当然方法有这么多,各自也就有自己的优缺点了。方法一:我用得做多的方法是创建互斥体Mutex,使用Mutex代码比较简洁,但是此时不能取得已经启动的实例窗口局柄,因此无转载 2011-11-06 22:47:58 · 1260 阅读 · 1 评论