사용자 지정 CStatic
컨트롤을 vc++
에 만들고 몇 가지 문제가 있습니다.CStatic 사용자 지정 컨트롤
원래는 SS_BLACKRECT
스타일의 CStatic
컨트롤을 사용하고있었습니다. 필요할 때 컨트롤 위에 이미지를 표시해야 할 때까지 상황에 좋았습니다.
컨트롤에 이미지를 실제로 그려 놓은 뒤에 모든 물류를 알아 냈지만 다른 것들을 방해하지 않고 그렇게하는 방법을 알아낼 수는 없습니다.
기본적으로 컨트롤은 SS_BLACKRECT
스타일의 대부분을 사용하는 보통 CStatic
으로 작동합니다.
그러면 컨트롤 대신 이미지를 그릴 수있는 메서드를 호출 할 수 있어야합니다. 나는 GDI
을 사용하여 도면을 만들고 있는데 성공하지 못하면 OnPaint()
방법과 DrawItem()
방법을 모두 시도했습니다. 나는 OnPaint()
에 그림을 그릴 수 있지만베이스를 호출하면 CStatic::OnPaint()
내 이미지 위에 그림이 그려집니다.
정상적으로 그리도록 허용 할 수 있어야하지만 이미지를 맨 위에 던져 넣을 수 있어야합니다. DrawItem()
메서드에서 처리하려고했을 때 분명히 SS_BLACKRECT
스타일을 사용하여 드로잉을 그리지 않았으므로 그 컨트롤을 그리기를 기다리고 있었기 때문에 문제가있었습니다.
내가 찾고있는 것 같아요. 세 가지 중 하나입니다. 기본 OnPaint()
메서드 완료 후 GDI
을 사용하여 그리는 방법. 컨트롤을 기본 SS_BLACKRECT
스타일로 그리고 나서 이미지를 OWNERDRAW
그려야합니다. 또는 도면을 모방하는 코드 SS_BLACKRECT
.
마지막 것이 가장 쉽지만, 기본 DrawItem처럼 CStatic
컨트롤을 그리기 위해 필요한 모든 것을 모릅니다.
해결 방법을 찾으셨습니까? – Alan