我们知道,输入法最主要的是一个DLL,里面有这样两个导出函数:7、BOOL ImeProcessKey( //处理应用程序传入的所有击键事件,监测是否是当前输入法所需的
HIMC hIMC, //应用程序句柄
UINT uVirKey, //需处理的虚键
DWORD lParam, //击键消息参数
CONST LPBYTE lpbKeyState //当前键盘状态(256字节)
)11、UINT ImeToAsciiEx( //转换编码称汉字(串)
UINT uVirKey, //虚键
UINT uScanCode, //扫描码
CONST LPBYTE lpbKeyState, //用户定义的键盘状态
LPDWORD lpdwTransBuf, //转换后的数据存放区
UINT fuState, //活动菜单标志
HIMC hIMC //当前的应用程序句柄
)在ImeProcessKey中,可以根据lParam来判断是按下键的消息还是松开键的消息。可是在ImeToAsciiEx中呢?有办法判断是按下键还是松开键的消息吗?
HIMC hIMC, //应用程序句柄
UINT uVirKey, //需处理的虚键
DWORD lParam, //击键消息参数
CONST LPBYTE lpbKeyState //当前键盘状态(256字节)
)11、UINT ImeToAsciiEx( //转换编码称汉字(串)
UINT uVirKey, //虚键
UINT uScanCode, //扫描码
CONST LPBYTE lpbKeyState, //用户定义的键盘状态
LPDWORD lpdwTransBuf, //转换后的数据存放区
UINT fuState, //活动菜单标志
HIMC hIMC //当前的应用程序句柄
)在ImeProcessKey中,可以根据lParam来判断是按下键的消息还是松开键的消息。可是在ImeToAsciiEx中呢?有办法判断是按下键还是松开键的消息吗?
解决方案 »
- dll扩展存储过程怎样连接web页面
- 关于菜单对象指针的问题,我需要帮助!!!
- 一个简单的问题?
- 急需解决的问题:自画的基于于CComBoBox为何用GetWindowText()函数不能获得当前选定的文本内容(获取是的乱码),为何?(附代码)
- 哪位高手有成功解决屏蔽win键的经验,请指教!
- 有关winAPI
- 一个工程里不同模块里需要分别多次调用同一DLL的问题
- VS2010远程调试
- Lemonade.你好,你好,我在灯你。。呵呵
- 最大化之后出现的问题(有点菜)
- cout 在 ostream类,cin 在 istream 类,可是我如何找到 cout,cin在哪里创建的呢?
- 关于区域文字背景的问题
MSDN 说
lpKeyState
[in] Pointer to a 256-byte array that contains the current keyboard state. Each element (byte) in the array contains the state of one key. If the high-order bit of a byte is set, the key is down (pressed).
The low bit, if set, indicates that the key is toggled on. In this function, only the toggle bit of the CAPS LOCK key is relevant. The toggle state of the NUM LOCK and SCROLL LOCK keys is ignored.