| 发表于:2007-08-21 14:24:118楼 得分:0 |
cangwu_lee(橙子) ( ) 信誉:98 2007-3-9 14:06:03 得分: 0 别开玩笑了,只能记住用户按过哪些键,而用户的输入了什么中文,得不到。 这个可以的,画个text1,然后……………… '窗体代码 option explicit private const gwl_wndproc as long = -4 private declare function setwindowlong lib "user32.dll " alias "setwindowlonga " (byval hwnd as long, byval nindex as long, byval dwnewlong as long) as long private sub form_load() prewndproc = setwindowlong(text1.hwnd, gwl_wndproc, addressof wndproc) end sub private sub form_unload(cancel as integer) call setwindowlong(hwnd, gwl_wndproc, prewndproc) end sub '模块代码 option explicit private const wm_ime_char as long = &h286 private const wm_ime_composition as long = &h10f private declare function callwindowproc lib "user32.dll " alias "callwindowproca " (byval lpprevwndfunc as long, byval hwnd as long, byval msg as long, byval wparam as long, byval lparam as long) as long public prewndproc as long function wndproc(byval hwnd as long, byval msg as long, byval wparam as long, byval lparam as long) as long select case msg case wm_ime_composition if lparam = 8127 then debug.print "输入中文了 ", end if case wm_ime_char debug.print chr$(wparam), end select wndproc = callwindowproc(prewndproc, hwnd, msg, wparam, lparam) end function '你在text1里面随便输入些汉字,在立即窗口可以看见 | | |
|