문제

이것은 PLT-Scheme 래퍼 라이브러리의 일부입니다.

(define InputMask

  (_bitmask '(NoEventMask =            #x00000000

            KeyPressMask =             #x00000001

            KeyReleaseMask =           #x00000002

            ...

            OwnerGrabButtonMask =      #x01000000)

      _long))

문제는 비트 마스크에서 필드에 액세스하는 방법을 알 수 없다는 것입니다 (또는 그 문제에 대한 열거). 예를 들어 keypressmask 값을 얻으려면 어떻게해야합니까?

도움이 되었습니까?

해결책

당신은 그렇지 않습니다. CTYPE를 추가하는 것은 쉽습니다. 새로운 CTYPE를 만들려면 기존 CTYPE를 구축 할 수있는 두 가지 기능을 제공해야합니다. 하나는 기존 유형으로 변환하고 다른 하나는 다른 방식으로 번역 할 수 있습니다.

이제 _bitmask 유형은 바로 그 일을합니다 _int (그러나 당신의 경우에는 켜져 있습니다 _long) 및 두 번역 함수는 기호 목록을 정수로, 정수를 기호 목록으로 변환합니다. 그러한 유형이 사용되면 KeyPressMask - 당신은 당신이 지나갈 수 있다는 것을 알고 있습니다 '(KeyPressMask) 로서 InputMask 외국 기능에 입력하면 적절한 숫자로 변환됩니다. 또한 당신은 또한 당신이 InputMask 출력, 그러면 포함 할 수있는 기호 목록이 될 것입니다. KeyPressMask. 결론은 계획 측면에서 숫자를 다루지 않으며 심볼 목록 만 다루지 않는다는 것입니다.

만약 너라면 하다 모호한 이유를 위해 이러한 값에 액세스해야한다면 다른 방법으로 자신의 CType을 만들 수 있습니다. make-ctype (위에서 설명한대로)는 매우 쉬워야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top