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

  • 内容
  • 评论
  • 相关

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 默认的消息处理程序)。

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

本文地址:http://www.hosteonscn.com/5571.html

评论

0条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注