2012년 4월 16일 월요일

[Windows API] 유니코드 문자열 관련 간단 정리


아래 방식을 사용하면 유니코드와 아스키 코드 양쪽을 받아주는 호환성있는 코드가 된다.




TCHAR 타입: wchar_t 또는 char 자동으로 받아준다.


TEXT("문자열")





그리고 아래는 유니코드 방식의 문자열을 쓰는 방식이다.

L"문자열" 

[Windows API] 다이얼로그 박스의 차일드 컨트롤 깜빡임 제거하기

일반 윈도우의 차일드 컨트롤의 경우

메인 윈도우를 생성할때 WS_CLIPSIBLINGS | WS_CLIPCHILDREN 속성을 부여하면

차일드 윈도우를 매번 다시 그리지 않게 되므로 깜빡임을 제거할 수 있다.



그런데 다이얼로그 박스의 경우 CreateWindow 함수를 사용해서 생성하지 않으므로

생성시 속성을 부여할 방법이 없다.

일반적으로 윈도우 깜빡임을 해결하는 방법은 더블 버퍼링이지만 컨트롤은 그렇게 할 수도 없다(방법이 있을지도 모르지만 필자는 모르겠다).

때문에 다이얼로그 박스 내부의 컨트롤은 계속 깜빡거리고 있게된다.



하지만 비주얼 스튜디오의 리소스 편집기에서 속성을 변경하면 문제가 간단히 해결된다.

리소스 편집기로 대화상자 리소스의 속성창을 열어서 아래 부분을 TRUE 로 바꿔주면 된다.






-------------------
12.04.17 내용추가

SetWindowLong 함수를 사용해 윈도우 속성을 변경해줄 수 있다고 합니다.

이쪽이 더 근본적인 해결책이겠네요^^