SendMessage (F4) fails when sending it to window
Working with Visual Studio 6 (VC++ 6.0) I'm using an ActiveX datepicker control which I fail to show expanded by default (3006216). Alternatively I'm trying to send a keyboard message (F4) to my window to open up the control, but nothing happens when 开发者_StackOverflowI do so...
// 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);
result is always 0 - what can I do to test/verify the message sending?
Thanks in acvance a lot...
Olli
VK_F4
is a key code, not a window message. Try this:
::SendMessage(m_hWnd, WM_KEYDOWN, VK_F4, 0);
::SendMessage(m_hWnd, WM_KEYUP, VK_F4, 0);
Okay - there's two approaches on this issue (thanks for all the help, guys!):
First: Use "::SendMessage" with correct message AND correct handle:
::SendMessage(m_wndDatePicker.m_hWnd, WM_KEYDOWN, VK_F4, 0);
Alternatively use "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));
精彩评论