0

Windows Mobile 6.5 운영 체제가있는 스마트 장치가 있고 .Net CF 3.5 및 C# 언어로이 장치 용 응용 프로그램을 작성하려고합니다. 장치 키패드로 Windows Mobile 장치에 다국어 문자를 입력하는 방법

enter image description here

당신은 상단 그림에서 보듯이

는, 텍스트와 숫자가 같은 키에 배치됩니다 :이 장치의 keybpad이 그림과 같은 모양입니다. 예를 들어 'A'로 시작하는 것을 쓰고 싶다면 2 번 키를 입력해야합니다. 'B'를 입력하려면 키 2를 두 번 누르고 'C'를 입력하려면 세 번 누르십시오.

. 이 키보드를 사용하여 영어 글자를 입력 할 수 없으며 숫자 만 입력 할 수 있습니다. 나는 텍스트 상자 (그리고 페르시아어 편지)에 영어 글자를 입력하고 싶다. 이 작업을 extern 기능인 keybd_event()으로 수행 할 수 있습니까?

Q2. 나는 문자 입력을위한 3 방법을 동시에 다음 방법 중 하나를 사용하도록 설정해야합니다 : (.? 같은 일부 문자, /)

  1. 유형의 숫자 ​​
  2. 유형 영어 편지를
  3. 유형 페르시아어 편지 (일부 문자가 같은과.? /) 세 가지 방법

    Q3 사이를 전환하는 방법 다른 손에서

. 방법은 표시 키보드에 설명 된 3 가지 입력 방법 중 하나에 따라 적절한 문자로? 다음 아마도 SDF (SmartDeviceFramework)를 사용하여 특수 키 해석은 하나의 응용 프로그램 (Compact Framework에서) 내부에 필요한 경우

감사

+0

질문이 명확하지 않습니다 : 소프트웨어 키보드, 키보드 드라이버를 작성 하시겠습니까? 아니면 응용 프로그램을 작성 하시겠습니까? 표시된 이미지가 하드웨어 키보드 인 경우 드라이버는 한 번에 한 번 이상 키를 누르면 어떤 일이 일어날 지 책임이 있습니다. – josef

+0

안녕하세요 josef, C# .Net CF 3.5로 Win Mobile 6.5 OS가있는 스마트 장치 용 소프트웨어 응용 프로그램 (소프트웨어 드라이버 또는 소프트웨어 키보드 없음)을 작성하려고합니다. 이제는 장치 키패드 (하드웨어 키패드)를 눌렀을 때 입력됩니다. 소프트웨어 응용 프로그램 만 "Digits"로, 하드웨어 키패드 모양의 많은 모바일 장치처럼이 장치의 하드웨어 키패드에 Letters (영어 및 페르시아어)를 입력하고 싶습니다. 이 장치의 하드웨어 키패드로 문자를 입력 할 수 없습니다. –

+0

이 입력 방법은 응용 프로그램 또는 시스템에서만 사용할 수 있습니까? – josef

답변

1

(영어, 페르시아어와 다른 시간, 숫자와 다른 시간에 한 시간)이있다 코이스. http://www.hjgode.de/wp/2012/09/20/windows-mobile-cf-how-to-catch-f1-and-f2-in-weh/

메시지 처리기에서 키보드 평면 (숫자, 영문자, 페르시아어)을 관리해야하며 키를 누른 시간이 한 번에 여러 번 눌러 지는지 여부를 결정할 수 있습니다 (이러한 ABC 옵션 출력을 생성하기 위해).

비행기를 전환 할 키 또는 조합을 정의하십시오.

들어오는 메시지를보고 무엇을 할 것인지 결정하십시오. 메시지 복사본을 변경하여 메시지 대기열에 게시하고 true를 반환하면 windows 시스템에서 사용자가 메시지를 처리했다는 것을 알 수 있습니다.

winuser.h 및 winuserm.h에 정의 된대로 간단한 키에는 keybd_event를 사용할 수 있습니다. 그러나 확장 문자의 경우이 작업은 복잡해집니다 (올바른 값 순서 찾기). 나는 확장 된 기호와 문자를 위해 PostMessage와 WM_CHAR을 사용할 것이다.

추가로 페르시아어 글립 문자로 트루 타입 글꼴을 설치해야 할 수도 있습니다. 기본 영어 OS fimrware는 일반적으로 유니 코드 문자 모양의 하위 집합 만 지원합니다.또한 http://www.hjgode.de/wp/2011/04/06/mobile-development-a-simple-unicode-character-map/

관련 문제