0

Visual Studio 6 (VC++ 6.0) での作業 ActiveX 日付ピッカー コントロールを使用していますが、既定では展開されていません ( 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

わかりました-この問題には2つのアプローチがあります(すべての助けに感謝します、皆さん!):

最初: 正しいメッセージと正しいハンドルで "::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 に答える