2010-06-14 2 views
0

Visual Studio 6 (VC++ 6.0)으로 작업 기본적으로 표시되지 않은 ActiveX datepicker 컨트롤을 사용하고 있습니다 (3006216).SendMessage (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입니다 ... 또한 내가 컨트롤을 열어 내 창에 키보드 메시지 (F4)를 전송하기 위해 노력하고있어,하지만 난 그렇게 할 때 아무 반응이 없습니다 - 내가 테스트를 위해 무엇을 할 수/메시지 전송을 확인 하시겠습니까? acvance 많이

감사합니다 ...

올리

+0

체크 아웃 : "당신은 PostMessage를 함께 키보드 입력을 시뮬레이션 할 수 있습니다"(HTTP : //blogs.msdn .com/b/oldnewthing/archive/2005/05/30/423202.aspx) – humbagumba

답변

-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)); 
0

VK_F4은 키 코드가 아닌 윈도우 메시지입니다. 이 시도 :

::SendMessage(m_hWnd, WM_KEYDOWN, VK_F4, 0); 
::SendMessage(m_hWnd, WM_KEYUP, VK_F4, 0); 
+0

흠, 도와 줘서 고마워. 불행히도 윈도우의 행동에서 아무것도 변하지 않았습니다, 미안 해요! – Olli

+0

@Olli, 내 편집을 확인하십시오. 코드를 테스트하지 않았고, 아마도 WM_KEYDOWN도 필요합니다. –

+0

@ Nick D : 개선 없음 - 더 이상 아이디어가 없습니까? – Olli

관련 문제