
windows编程
文章平均质量分 61
lssxlh
耐心
展开
-
Windows消息机制初谈
Windows系统是一个消息驱动的OS,什么是消息呢?我很难说得清楚,也很难下一个定义(谁在嘘我),我下面从不同的几个方面讲解一下,希望大家看了后有一点了解。 1、消息的组成:一个消息由一个消息名称(UINT),和两个参数(WPARAM,LPARAM)。当用户进行了输入或是窗口的状态发生改变时系统都会发送消息到某一个窗口。例如当菜单转中之后会有WM_COMMAND消息发送,WPARAM的高字中转载 2009-10-16 22:36:00 · 276 阅读 · 0 评论 -
API入门系列之四 -相当简单的SDK程序
大家好,还是我beyondcode,再次见面,前面介绍的那么多理论知识,你们都懂了吗? 就算还没有彻底领悟,但至少还是有那么一点意识了吧,知道有那么一回事了吧。这一篇我打算通过一个小小小例子,来回忆一下我们以前介绍的相关知识,如Windows的数据类型,特别是和字符和字符串操作相关的数据类型,还有就是Unicode和ASCII在API函数上的具体体现。另外,SDK编程交流群已经建立,很多朋转载 2010-01-21 07:54:00 · 287 阅读 · 0 评论 -
API入门系列之五 -一个正儿八经的SDK程序
上一篇,讲了一个简单的SDK程序的多种版本的编写,弹出了一个窗口,显示了我们计算1到10的结果,计算的程序不是重点,重点在于,一:让大家认识到Unicode版本的程序和ASCII版本的程序在编程方面的区别,以及怎么样编写出通用代码的程序。二:怎么样运用API或者c++库函数格式化非字符数据到一个字符串中显示出来。不过,那个相当简单的程序,还算不上是一个正儿八经的SDK程序,也就是说还不是一个纯转载 2010-01-21 07:57:00 · 325 阅读 · 0 评论 -
MessageBox输出整数和浮点数
#include #include //_tWinMain _T()#include //sprintfint WINAPI _tWinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nShowCmd ){//输出整数 TCHAR buffer[256]={0};原创 2010-01-22 22:30:00 · 1247 阅读 · 0 评论 -
API入门系列之六 -自己实现MessageBox
API入门系列文章的第六篇之自己动手实现MessageBox。我在第四篇文章:一个相当简单的SDK程序 中讲到了通过调用MessageBoxAPI函数来弹出一个对话框,那你有没有想过,我们一句简单的代码背后所隐藏的细节是怎么的呢,那时候让你了解这些未免还早了些,不过现在时机到了,通过一些基本的API函数调用来实现一个自己的对话框其实也不是很难,那么这一篇文章就是这个目的。并顺带介绍一些基本AP转载 2010-01-21 08:00:00 · 1125 阅读 · 2 评论 -
完善MessageBox⑥源码
#include #include LRESULT CALLBACK WinMessageProc( HWND hwnd, // handle to window UINT uMsg, // message identifier WPARAM wParam, // first message parameter原创 2010-01-21 14:26:00 · 525 阅读 · 0 评论 -
API入门系列之七 -完善MessageBox
各位不好意思,前几天有些事很忙,昨天才稍稍有时间空闲下来,所以我将我的API入门系列文章继续下去,上一篇《自己实现MessageBox》中我们基本已经实现了一个对话框了,可以在中央显示自己的文字,并且显示一个确定按钮,可是,上一篇完的时候我留下了一个问题,那就是那个确定按钮并不会根据窗口的大小的改变而改变。那么我们怎么来解决这个问题呢?我给出了提示可以通过处理WM_SIZE来完成这个目的。那么转载 2010-01-21 15:05:00 · 426 阅读 · 0 评论 -
API入门系列之一 -那‘烦人’的Windows数据类型
Hello Everybody This is beyondcode 大家好 再次自我介绍一下 我是beyondcode, 这次心血来潮, 计划着做一系列关于Windows API 编程的教程,用于帮助一些在Windows API编程上有疑惑的,纳闷的,迷惑的新手朋友们。 先解释一些术语或名词吧 SDK是Software Development Kit的简写,也就是软件开发包的意思转载 2009-12-25 21:10:00 · 311 阅读 · 0 评论 -
获取除任务栏高度(宽度)外的屏幕大小
获取除任务栏高度(宽度)外的屏幕大小Type RECTLeft As LongToP As LongRight As LongBottom As LongEnd TypePrivate Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWind原创 2009-12-26 20:26:00 · 2159 阅读 · 0 评论 -
如何给窗口设置图标
步骤一:切换到Resource选项卡,导入一个ico文件,右击图标文件,选择properties选项,在ID中更改它的名字,如:IDI_ICONAPP,在头文件夹中导入资源头文件(resource.h) 步骤二://载入图标 HICON hIcon = LoadIcon((HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE) ,MAKEI原创 2010-03-11 10:02:00 · 2649 阅读 · 0 评论 -
MessageBox实现机制
MessageBox实现机制#include int WINAPIWinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil) { int result; result=Mess原创 2010-01-15 15:37:00 · 811 阅读 · 0 评论 -
关于消息分流器_1
<br />1.一个函数需include什么头文件lib文件可以查询MSDN,一般在最下面<br />2.在vc6.0中显示调用lib文件<br /> <br />#pragma comment(lib,"comctl32");<br /> <br />3.消息分流器是一些宏定义,定义在 /VC98/Include/WINDOWSX.H 文件中<br /> <br />#define HANDLE_MSG(hwnd, message, fn) /<br /> case (message): re原创 2010-06-06 11:34:00 · 338 阅读 · 0 评论 -
给窗口设置标题
<br /> SendMessage(hwnd,WM_SETTEXT,NULL,(LPARAM)TEXT("这是窗口标题"));<br /> SendMessage<br />The SendMessage function sends the specified message to a window or windows. <br />SendMessage函数发送指定的消息到一个或多个窗口。<br />It calls the window procedure for the specified wi原创 2010-06-05 12:51:00 · 2159 阅读 · 1 评论 -
模拟键盘的终极模拟1
这年头,在这个论坛里面已经没有什么技术贴了...呵呵~发一篇惊天地,泣鬼神的帖子.当然这个只是模拟键盘的终极模拟.呵呵~ 键盘是我们使用计算机的一个很重要的输入设备了,即使在鼠标大行其道的今天,很多程序依然离不开键盘来操作。但是有时候,一些重复性的,很繁琐的键盘操作总会让人疲惫,于是就有了用程序来代替人们按键的方法,这样可以把很多重复性的键盘操作交给程序来模拟,省了很多精力,按键精灵就是这样的一个软件。那么我们怎样才能用VB来写一个程序,达到与按键精灵类似的功能呢?那就让我们来先了解一下windows中响应转载 2010-12-17 08:37:00 · 2179 阅读 · 1 评论 -
ReadProcessMemory
函数功能描述:该函数用来读取指定进程的空间的数据,此空间必须是可以访问的,否则读取操作会失败!函数原型 BOOL ReadProcessMemory( HANDLE hProcess, // 目标进程句柄 LPCVOID lpBaseAddress, // 读取数据的起始地址 LPVOID lpBuffer, // 存放数据的缓存区地址 DWORD nSize, // 要读取的字节数 LPDWORD lpNumberOfBytesRead转载 2010-12-16 20:09:00 · 1288 阅读 · 0 评论 -
API入门系列之四 -相当简单的SDK程序
大家好,还是我beyondcode,再次见面,前面介绍的那么多理论知识,你们都懂了吗? 就算还没有彻底领悟,但至少还是有那么一点意识了吧,知道有那么一回事了吧。这一篇我打算通过一个小小小例子,来回忆一下我们以前介绍的相关知识,如Windows的数据类型,特别是和字符和字符串操作相关的数据类型,还有就是Unicode和ASCII在API函数上的具体体现。另外,SDK编程交流群已经建立,很多朋转载 2010-01-19 14:21:00 · 292 阅读 · 0 评论 -
API入门系列之三 -那迷惑人的Windows字符和字符指针类型
大家好,通过前面两篇打头文章,我也看了留言,感谢那些给我提意见的人和指出错误之处的人。再次谢谢你们的支持。 另外,Windows SDK编程交流群已经建立了,欢迎各位志同道合者加入进行交流( 群号:81543028 ) 本打算通过前面两篇文章的讲解,后来的系列就可以通过使用一些简单的,常用的API写一些示例程序的讲解进行,但是发现还有一个不得不先讲一讲的要点,Windows下和字符串操作有转载 2010-01-19 13:04:00 · 284 阅读 · 0 评论 -
API入门系列之二 -Unicode还是ASCII
今天,开始第二篇文章,这章我准备介绍一下Windows平台下编程中Unicode编码和ASCII编码的相关问题。不知道各位新手朋友们遇到这样的问题没有呢,新建一个Windows应用程序,调用MessageBox这个函数,准备让它弹出一段提示文本,可是编译器在编译的时候却报错说,不能将 const char* 或者 const char[] 转换为 const wchar_t* 之类的提示呢,很转载 2010-01-19 12:47:00 · 411 阅读 · 0 评论 -
Windows消息机制(2)
(二)创建窗口注册窗口类后,就可以创建窗口了,本程序中创建窗口的有关语句如下: hwnd = CreateWindow (szAppName, // window class name TEXT ("欢迎你的到来!"), // window caption转载 2009-10-16 23:06:00 · 491 阅读 · 0 评论 -
Windows消息机制(Windows Messaging)
Windows的应用程序一般包含窗口(Window),它主要为用户提供一种可视化的交互方式,窗口是由线程(Thread)创建的。Windows系统通过消息机制来管理交互,消息(Message)被发送,保存,处理,一个线程会维护自己的一套消息队列(Message Queue),以保持线程间的独占性。队列的特点无非是先进先出,这种机制可以实现一种异步的需求响应过程。消息的是什么样子的?消息由一转载 2009-10-16 22:39:00 · 473 阅读 · 0 评论 -
Windows消息机制(1)
Dos的过程驱动与Windows的事件驱动 在讲本程序的消息循环之前,我想先谈一下Dos与Windows驱动机制的区别:DOS程序主要使用顺序的,过程驱动的程序设计方法。顺序的,过程驱动的程序有一个明显的开始,明显的过程及一个明显的结束,因此程序能直接控制程序事件或过程的顺序。虽然在顺序的过程驱动的程序中也有很多处理异常的方法,但这样的异常处理也仍然是顺序的,过程驱动的结构。而Wind转载 2009-10-16 22:43:00 · 604 阅读 · 0 评论 -
Windows消息机制(3)
(五)终止应用程序:Windows是一种非剥夺式多任务操作系统。只有的应用程序交出CPU控制权后,Windows才能把控制权交给其他应用程序。当GetMessage函数找不到等待应用程序处理的消息时,自动交出控制权,Windows把CPU的控制权交给其他等待控制权的应用程序。由于每个应用程序都有一个消息循环,这种隐式交出控制权的方式保证合并各个应用程序共享控制权。一旦发往该应用程序的消息到达应转载 2009-10-16 23:09:00 · 485 阅读 · 0 评论 -
Windows基础结构(1)
一、设备描述表 设备描述表是Windows应用程序、设备驱动程序和输出设备之间的桥梁,它与一个特定的设备相关联。例如,对显示器来说,设备描述表通常指显示器上的某个窗口。设备描述表描述了所选定的绘图工具、字体、字体颜色、工具在设备上绘制(或者说是映射)的方式及设备上可使用的输出区域等属性。WindowsGDI函数实际上是在设备描述表里显示正文及绘图的。 当程序显示文字或绘图时,首先必须获得一个转载 2009-10-16 23:24:00 · 420 阅读 · 0 评论 -
Windows基础结构(2)
(三)坐标系统为了准备显示缓冲区,Windows调整设备的原点,使它位于用户区而不是显示器的左上角,并且还设置了一个剪辑区,使显示缓冲区的输出被”剪辑”到用户区。也就是说,用户区范围之外的输出并不送到显示器上。显示缓冲区默认的坐标系统很简单,用户区的左上角是原点,即点(0,0)。向右的每个像素表示X轴方向的一个单位,向下的每个像素表示Y轴方向的一个单位。通过修改映射模式和显示原点,可以转载 2009-10-16 23:28:00 · 333 阅读 · 0 评论 -
消息感悟
一个消息从产生到被一个窗口响应,其中有5个步骤: 1) 系统中发生了某个事件。 2) Windows把这个事件翻译为消息,然后把它放到消息队列中。 3) 应用程序从消息队列中接收到这个消息,把它存放在TMsg记录中。 4) 应用程序把消息传递给一个适当的窗口的窗口过程。 5) 窗口过程响应这个消息并进行处理。 步骤3和4构成了应用程序的消息循环。消息循环往往是Windows原创 2009-10-16 23:30:00 · 248 阅读 · 0 评论 -
Windows消息机制(4)
注:可能你看这些东西的时候有些乱,不过没关系,这很正常,多看几下MSDN就慢慢明白了,有我写这个专题的时候,很多概念也太不清楚,不过等我查资料写下来后,感觉渐渐有些东西也有了点眉目,因为这本身也是个进步的过程。 ---小朱 (七)处理消息 窗口过程处理消息通常以switch语句开始,对于它要处理的每一条消息ID都跟有一条case语句。大多数windows proc都有具有下面形式的内部结构:转载 2009-10-16 23:11:00 · 353 阅读 · 0 评论 -
WinMain与两只小板凳的故事
注:呵呵,近两天收到不少网友来信,要求我继续写下去,说实在的,写这东西费时费力。不过一旦想起这些对大家或许有些帮助时,无形的压力就来了。我所写的,仅仅是我编程中的感想,如果你有何感想,希望给我留言或到"C程序员论剑台"交流,如果你有好的建议,欢迎提出;如果你有好的对VC初学者有利的作品或文章,也欢迎给本站介绍,我将大力为你推广。---小朱 第一只小板凳:打开"an empty projec转载 2009-10-16 23:46:00 · 331 阅读 · 0 评论 -
return msg.wParam 和return 0有什么区别?
问题:while (GetMessage (&msg, NULL, 0, 0)) { TranslateMessage (&msg) ;原创 2009-10-17 15:58:00 · 1405 阅读 · 0 评论 -
特效天地——水波
特效天地——水波在介绍编程之前,先让我们来回顾一下在高中的物理课上我们所学的关于水波的知识。水波有如下几个特性:扩散:当你投一块石头到水中,你会看到一个以石头入水点为圆心所形成的一圈圈的水波,这里,你可能会被这个现象所误导,以为水波上的每一点都是以石头入水点为中心向外扩散的,转载 2009-10-20 16:53:00 · 314 阅读 · 0 评论 -
第一个windows程序-弹出的信息框
#include /************************************************************************//* windows api 编程必须导入windows.h头文件 windows.h中包含了其他的头文件-WINDEF.H 基本类型定义-WINNT.H 支持unicode的类型定义(宽字符定义)-原创 2009-11-08 13:43:00 · 682 阅读 · 0 评论 -
WinMain函数
#include #include LRESULT CALLBACK WinSunProc( HWND hwnd, // handle to window UINT uMsg, // message identifier WPARAM wParam, // first message parameter转载 2009-11-08 22:11:00 · 5319 阅读 · 2 评论 -
于(&)运算和(|)或运算的一些例子
与运算(&) 双目运算。二个位都置位(等于1)时,结果等于1,其它的结果都等于0。 1 & 1 == 1 1 & 0 == 0 0 & 1 == 0 0原创 2009-11-09 10:43:00 · 513 阅读 · 0 评论 -
模拟键盘的终极模拟2
<br />2.全局级模拟<br /> 你会发现,用上面的方法模拟按键并不是对所有程序都有效的,有的程序啊,你向它发了一大堆消息,可是它却一点反应也没有。这是怎么回事呢?这就要看具体的情况了,有些程序(特别是一些游戏)出于某些原因,会禁止用户对它使用模拟按键程序,这个怎么实现呢?比如可以在程序中检查一下,如果发现自己不是活动窗口,就不接受键盘消息。或者仔细检查一下收到的键盘消息,你会发现真实的按键和模拟的按键消息总是有一些小差别,从这些小差别上,目标程序就能判断出:这是假的!是伪造的!!因此,如果用P转载 2010-12-17 08:38:00 · 1476 阅读 · 0 评论