C++ 注销热键()在Windows Mobile上不起作用
在调用RegisterHotKey()之后,它似乎起作用了,因为按下时音量上升/下降没有响应,但当我调用UnregisterHotKey()恢复默认值时,除非启动设备,否则音量上升/下降仍然没有响应。我怎样才能恢复它们?谢谢C++ 注销热键()在Windows Mobile上不起作用,c++,winapi,windows-mobile,C++,Winapi,Windows Mobile,在调用RegisterHotKey()之后,它似乎起作用了,因为按下时音量上升/下降没有响应,但当我调用UnregisterHotKey()恢复默认值时,除非启动设备,否则音量上升/下降仍然没有响应。我怎样才能恢复它们?谢谢 void RestoreVolumeKeys() { hWndTray = FindWindow(_T("HHTaskBar"), NULL); if(hWndTray) { UnregisterHotKey((HWND)hWndTr
void RestoreVolumeKeys()
{
hWndTray = FindWindow(_T("HHTaskBar"), NULL);
if(hWndTray)
{
UnregisterHotKey((HWND)hWndTray, VK_TVOLUMEDOWN);
UnregisterHotKey((HWND)hWndTray, VK_TVOLUMEUP);
}
else//HHTaskBar not found then try find Tray
{
hWndTray = FindWindow(_T("Tray"), NULL);
if(hWndTray)
{
UnregisterHotKey((HWND)hWndTray, VK_TVOLUMEDOWN);
UnregisterHotKey((HWND)hWndTray, VK_TVOLUMEUP);
}
}
}
您没有正确使用它。第二个参数不是虚拟键,而是您在RegisterHotKey()调用中使用的
id
BOOL RegisterHotKey(HWND-HWND,
int id,//显示调用RegisterHotKey()的代码当我调用RegisterHotKey()时,我使用了实际的虚拟键值作为id,因此id和vk都具有相同的值,即vk_TVOLUMEDOWN和vk_TVOLUMEUP。
BOOL RegisterHotKey(HWND hWnd,
int id, // <=== this one
UINT fsModifiers,
UINT vk
);