我使用名为CLS1
的注册类创建了一个窗口invoke CreateWindow,addr CLS1,addr title,WS_OVERLAPPED,
10,10,300,300,NULL,NULL,hInstance,NULL
mov hwnd,ax
我的窗户上有一个像这样的人:
invoke CreateWindow,addr clsed,NULL,WS_CHILD or WS_VISIBLE or ES_MULTILINE
or ES_AUTOVSCROLL or WS_BORDER or WS_TABSTOP,10,10,280,250,hwnd,123,hInstance,NULL
和我的消息循环:
.while TRUE
invoke GetMessage,addr msg,NULL,0,0
.break .if (ax == 0)
invoke IsDialogMessage, hwnd,addr msg
.if (!ax)
invoke TranslateMessage,addr msg
invoke DispatchMessage,addr msg
.endif
.endw
在我的WndProc中,我希望(测试时)WM_KEYDOWN消息有效,并在按下字母'A'时显示消息框。所以,我试过这个:
.if (message == WM_KEYDOWN)
.if (wParam == 41h) ;41h = A or a
invoke MessageBox,NULL,addr keypress,addr title,48
.endif
但它只是不起作用!
如果有人有任何解决方案......请帮助我。
对不起我的英语......我不是美国人(笑)
答案 0 :(得分:0)
你在为16位窗口写作吗?如果没有,检查16位返回值和使用16位句柄是不对的:
mov hwnd,ax
.break .if (ax == 0)
.if (!ax)
使用 eax ,事情可能会更好。