2012-09-28 3 views
1

VK_OEM_MINUS (VIRTKEY)를 Visual C++ 프로젝트의 메뉴 가속기로 사용하며 QWERTY 키보드의 "-/_"키를 누르면 완벽하게 작동합니다.AZERTY 키보드에서 VK_OEM_MINUS가 작동하지 않습니다.

하지만 프랑스어 키보드 레이아웃을 사용하면 작동하지 않습니다. "-"는 프랑스어 레이아웃의 "6"키에 배치되며 다른 키 코드를 사용하는 것처럼 보입니다.

AZERTY 키보드에 MINUS 키를 사용하려면 어떻게해야합니까? 가속기 키를 다시 할당하지 않고 코드를 재사용 할 수있는 방법을 찾고 있습니다. MINUS를 키보드의 가속기로 사용하는 것을 선호합니다.

업데이트 : 가상 키보다는 ASCII를 사용하려고 시도했으나 "-", ID_MENUITEM, ASCII, NOINVERT, 아무 일도 발생하지 않았지만 여전히 작동하지 않습니다. (Win7, MSVC2010)

업데이트 : 노트북을 변경하고 Win7과 MSVC2008 - ASCII 가속기가 작동하지만 가속기 테이블을 통해 Ctrl +, Shift + (-) 조합을 처리 할 수없는 것처럼 보입니다.

업데이트 : 프랑스어 키보드 레이아웃의 경우 VK_OEM_MINUS (0xBD)가 전혀 존재하지 않으며 프랑스어 키보드로 생성 할 수없는 것 같습니다.

+0

오른쪽 괄호 사용해보기 –

+0

아니요, 작동하지 않습니다. – Rom098

+0

물론 'VK_OEM_MINUS'는 존재하지 않습니다. 자신이 말했듯이, 당신이 찾고있는 심볼은'VK_KEY_6'에 있습니다. –

답변

0

이것은 내가 AZERTY 키보드에 다른 가속기를 사용하거나 사용자 정의 액셀러레이터를 구현하지 않기를 원했기 때문에 적용한 빠른 솔루션입니다.

AZERTY 키보드에서 VK_OEM_MINUS를 생성 할 수 없으므로 VK_KEY_6을 누르면 (AZERTY에만 해당) 게시 (WM_KEYDOWN, VK_OEM_MINUS)하여 키 프레스를 위조했습니다.

관련 문제