您当前的位置:首页 > 计算机 > 编程开发 > 汇编

汇编语言WinProc过程:接收并处理所有与窗口有关的事件消息

时间:03-05来源:作者:点击数:

WinProc 程接收并处理所有与窗口有关的事件消息。这些事件绝大多数是由用户通过点击和拖动鼠标、按下键盘按键等操作发起的。这个过程的工作就是解码每个消息,如果消息得以识别,则在应用程序中执行与该消息相关的任务。

过程声明如下:

WinProc PROC,
hWnd: DWORD,         ;窗口句柄
localMsg: DWORD,    ;消息 ID
wParam:DWORD,       ;参数 1 (可变)
lParam: DWORD         ;参数 2 (可变)

根据具体的消息 ID,第三个和第四个参数的内容可变。比如,若点击鼠标,那么 lParam 就为点击位置的 X 坐标和 Y 坐标。在后面的示例程序中,WinProc 过程处理了三种特定的消息:

  • WM_LBUTTONDOWN,用户按下鼠标左键时产生该消息
  • WM_CREATE,表示刚刚创建主窗口
  • WM_CLOSE,表示将要关闭应用程序主窗口

比如,下面的代码行通过调用 MessageBox 向用户显示一个弹出消息框来处理 WM_LBUTTONDOWN:

.IF eax == WM_LBUTTONDOWN
INVOKE MessageBox, hWnd, ADDR PopupText,
    ADDR PopupTitle, MB_OK
jmp WinProcExit

用户所见的结果消息如下图所示。其他不希望被处理的消息都会被传递给 DefWindow-Proc(MS-Windows 默认的消息处理程序)。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门