0

使用 Visual Studio 6 (VC++ 6.0) 我正在使用 ActiveX datepicker 控件,默认情况下我无法显示扩展 ( 3006216 )。或者,我正在尝试向我的窗口发送键盘消息(F4)以打开控件,但是当我这样做时没有任何反应......

// try 1: use the standard window handle
LRESULT result = ::SendMessage(m_hWnd,VK_F4, 0, 0);
// try 2: use just use the SendMessage
result = SendMessage(VK_F4);

结果始终为 0 - 我可以做些什么来测试/验证消息发送?

非常感谢...

奥利

4

2 回答 2

0

VK_F4是键码,而不是窗口消息。试试这个:

::SendMessage(m_hWnd, WM_KEYDOWN, VK_F4, 0);
::SendMessage(m_hWnd, WM_KEYUP, VK_F4, 0);
于 2010-06-14T09:46:23.797 回答
-1

好的 - 这个问题有两种方法(感谢所有帮助,伙计们!):

首先:使用带有正确消息和正确句柄的“::SendMessage”:

::SendMessage(m_wndDatePicker.m_hWnd, WM_KEYDOWN, VK_F4, 0);

或者使用“SendInput”:

// important: set focus to control first    
m_wndDatePicker.SetFocus(); 

INPUT *key;

key = new INPUT;
key->type = INPUT_KEYBOARD;
key->ki.wVk = VK_F4;
key->ki.dwFlags = 0;
key->ki.time = 0;
key->ki.wScan = 0;
key->ki.dwExtraInfo = 0;

SendInput(1,key,sizeof(INPUT));
于 2010-06-14T11:58:08.630 回答