李小涵 发表于 2014-2-22 17:45:35

win32汇编中如何读取用户输入的字符?

如题,输出字符用的
;invoke    wsprintf, addr buffer, addr format, 1, 2, 3, 4;
;   invoke    MessageBox, 0, addr buffer, 0, 0
接收用户输入呢?

oggplay 发表于 2014-2-22 18:59:17

本帖最后由 oggplay 于 2014-2-26 15:46 编辑

#1、我觉得是调用C库函数一


lenovolty 发表于 2014-2-26 13:19:21

可以通过处理键盘输入消息WM_CHAR来读取用户输入的字符
.data
char WPARAM 20h

.ELSEIF uMsg==WM_CHAR
      push wParam
      popchar
      invoke InvalidateRect, hWnd,NULL,TRUE
这一段是用来处理WM_CHAR消息的。它把接收到的字符放入变量char中,接着调用InvalidateRect,而InvalidateRect使得窗口的客户区无效,这样它会发出WM_PAINT消息,而WM_PAINT消息迫使WINDOWS重新绘制它的客户区。

猫咪喵喵 发表于 2014-3-6 18:54:27

调用API设置消息处理的函数
然后找到指定消息的时候记录即可

52077643 发表于 2014-3-8 19:28:01

invoke SendMessage 获取那个地方的句柄,WM_GETTEXT,0,addr @szBuffer

dAb 发表于 2014-3-11 16:44:55

没有那么麻烦。。接收用户输入当然要有地方给用户输入吧,文本框之类的。。
调用获取文本API获取用户的输入保存
看到你最后是弹框显示用户输入的文字
可以用GetDlgItemText 或者 GetWindowText获取用户输入的文本


页: [1]
查看完整版本: win32汇编中如何读取用户输入的字符?