3《白手起家Win32SDK应用程序》第三篇 增加一个回调函数.doc_第1页
3《白手起家Win32SDK应用程序》第三篇 增加一个回调函数.doc_第2页
3《白手起家Win32SDK应用程序》第三篇 增加一个回调函数.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

转白手起家Win32SDK应用程序第三篇 增加一个回调函数第三篇 增加一个回调函数 白云小飞1 请再创建一个函数。LRESULT CALLBACK WinProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) /这里可以输入响应消息的代码 return 0; 此函数人称回调函数也称自定义窗口过程函数。但其实它与我们一般函数无异,你千万不要把这个函数想得太复杂了啊! 记住,函数名WinProc及各参数变量名是可以由你来指定,但是参数类型、个数、顺序、及返回值类型是不能改变的。 那么,这个函数是干什么的啊? 它是一个用来与某窗口关联的函数。当我们在窗口上的每一个操作,都会调用这个函数。这在个函数里,我们可以写上代码来完成我们在窗口上操作的相应功能。 先来看参数部分:UINT msg :UINT 类型不是我们在前面也见过吗?就是unsigned int类型了。每次程序运行时用户在窗口上操作所产生的消息都会通过msg传递进来。msg里保存的值就是我们对窗口操作时产生的消息值(即 WM_CLOSE、WM_CHAR、WM_COMMAND、的值)。HWIND hwnd :哦!这是我在第一篇中讲过的一个窗口句柄类型的变量。我们可以通过传入的hwnd的值知道msg中的消息对应的是哪一个窗口。 WPARAM wparam , LPARAM lparam :wparam和lparam这两个参数变量的类型分别是WPARAM和LPARAM。呵呵,我不是说过,你还会见到许多“新”的数据类型的吗?你可要有心理准备噢。 在windef.h中有定义:typedef UINT WPARAM; /看,WPARAM其实就是unsigned int。typedef LONG LPARAM; /看,LPARAM其实就是long类型typedef LONG LRESULT; /LRESULT与LPARAM一样也是长整型long返回值:类型为LRESULT,看windef.h中的定义可以知道是一个长整型long现在你大体知道这些就行了。至于更进一步的认识,让我们先放到一边去吧!CALLBACK:这又是什么呢? 在windef.h中的定义如下:#define CALLBACK _stdcall#define WINAPI _stdcall 哦!它与WINAPI是一样的,也是_stdcall了,这个WinProc函数是提供给操作系统调用的。我说过操作系统调用的函数都得在前加_stdcall。 (那为什么不直接用_stdcall呢?) 呵呵,这至少可以增加代码的可读性及易改性。 我猜也许你还会继续下一个疑问:那我又如何具体地使用这个函数呢?慢慢来,现在你只要输入到你的.cpp文件中就可以了。 到此为止,我们的MyAppMain.cpp文件代码如下:/Begin MyAppMain.cpp#include #includeLRESULT CALLBACK WinProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) /这里可以输入响应消息的代码 return 0;int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hprevinstance, LPSTR lpcmdline, int ncmdshow) / 将会在这里输入主函数的代码 return 0;/End MyAppMain.cpp 目前为止,这个程序还是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论