2013-02-15 3 views
2

MSDN의 모든 페이지를 검사했지만 다음과 같은 결과가 없습니다.제한 편집 컨트롤 내용

  1. 편집 컨트롤의 최소 문자 길이.
  2. 편집 컨트롤의 입력 값 범위 지정.
  3. 편집 컨트롤에서 알파벳 만 허용.
  4. 버튼 컨트롤을위한 툴팁을 설정합니다.

Win32에서이 작업을 수행하는 방법을 알려주십시오.

답변

5
  1. 제대로 수행하기가 어렵습니다. 순진적인 접근 방식은 메시지를 처리하여 백 스페이스를 가로 채고 키를 삭제합니다 (VK_BACKVK_DELETE). 그러나 사용자는 기존 텍스트 중 일부를 선택한 다음 삭제 (백 스페이스 또는 삭제), 잘라 내기 또는 바꾸기 (키 입력 또는 다른 텍스트 붙여 넣기)를 처리해야합니다. 나는 그것이 가치 있다고 생각하지 않으며, 당신이 이것을 잘 할 수 있다고하더라도, 당신이 모든 정상적인 행동을 깰 때 혼란 스러울 수 있습니다. 컨트롤에 텍스트 "바"가 있지만 "baz"로 변경하려는 경우 컨트롤의 최소 길이를 3으로 설정 한 다음 마지막 문자를 백 스페이스로 가져 오려고 시도하면 처음에는 "bar"로 변경해야 "r"문자를 삭제할 수 있습니다.)

    컨트롤에 최소 길이가 필요한 경우이를 적용하는 것이 좋습니다. 별도의 유효성 검사 단계 (예 : 확인 단추를 클릭하거나 다른 컨트롤로 포커스를 이동하는 경우) 및 적절한 오류 메시지 표시

  2. 특정 문자 만 편집 컨트롤에 입력 할 수 있는지 여부 또는 숫자 값 범위로 제한할지 여부가 확실하지 않습니다. 전자의 경우 3을 참조하십시오.

    값을 특정 숫자 범위로 제한하려면 별도의 유효성 검사 단계에서 값을 제한하는 것이 좋습니다. 그렇지 않으면 사용자가 정상적인 방법으로 문자를 삽입 및 삭제하지 못하게 될 수 있습니다. 가능한 경우 편집 컨트롤을 사용하거나 트랙 막대 (슬라이더) 컨트롤을 사용하지 마십시오.

  3. 편집 컨트롤을 서브 클래스 화하고 WM_CHAR 메시지를 처리하고 원하지 않는 문자를 거부해야합니다. 또한 WM_PASTE 메시지를 처리하고 유사한 유효성 검사를 수행해야합니다.

  4. 이것은 편집 컨트롤과 아무 관련이 없으므로 아마도 별도의 질문이어야합니다. 너 뭐 해봤 니? http://msdn.microsoft.com/en-us/library/bb760250.aspx을 읽으셨습니까?