|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
请问为什么 窗口过程中 wParam 的 高16位和低16 不能用 AND wParam,0FFFFh 来提取
EDIT_CONTORL 的消息只能用 ax == XXX 而不能用 eax == XXXXX 来判读 ,他们之间是什么关系。
- .data?
- wShow dw ?
- wFree dw ?
- dShow dd ?
- ;**************************************************
- .code
- _MainProc proc uses ebx edi esi hWnd,uMsg,wParam,lParam
- mov eax,uMsg
- .if eax == WM_CLOSE
- invoke EndDialog,hWnd,NULL
-
- .elseif eax == WM_COMMAND
- mov eax,wParam
-
- .if eax == ID_INC
- Call _IncCounter
- invoke SetDlgItemInt,hWnd,IDC_COUNTER,eax,FALSE
- .elseif eax == ID_DEC
- Call _DecCounter
- invoke SetDlgItemInt,hWnd,IDC_COUNTER,eax,FALSE
- .elseif ax == IDC_NUM1 || ax == IDC_NUM2
- push eax
-
- mov wShow,ax
- ;mov dShow,eax
- ;pop dShow
- invoke SetDlgItemInt,hWnd,IDC_AX,dword ptr wShow,FALSE
- pop dShow
- invoke SetDlgItemInt,hWnd,IDC_wParam,dShow,FALSE
-
- invoke GetDlgItemInt,hWnd,IDC_NUM1,NULL,FALSE
- push eax
- invoke GetDlgItemInt,hWnd,IDC_NUM2,NULL,FALSE
- pop ecx
- invoke _Mod,ecx,eax
- invoke SetDlgItemInt,hWnd,IDC_MOD,eax,FALSE
-
- .endif
-
- .else
- mov eax,FALSE
- ret
- .endif
- mov eax,TRUE
- ret
- _MainProc endp
复制代码
WM_COMMAND消息中有两个参 数,wparam、lparam,定义如下:
wParam 高两个字节 通知码
wParam 低两字节 命令ID
lParam 发送命令消息的子窗体句柄。
|
|