몇 년 동안 VB 6.0을 시작한 지 얼마 지나지 않아 VB.net에서 시작했습니다. 몇 가지 그래픽으로 시작한다고 생각했습니다.비트 맵을 사용하여 비트 맵을 그리는 VB.NET은 검은 색 사각형을 렌더링합니다.
그냥 재미있게 BitBlt를 사용하여 리소스로로드하고 양식에 그리는 비트 맵을 그립니다. 나는 picturebox에서 기존 이미지를로드하고 bitblt 할 수있다. 리소스에서 비트 맵을로드하여 picturebox에 저장할 수도 있지만 비트 맵을 가져올 때이를 GDI Graphics 개체로 변환하고 BitBlt를 폼으로 가져 오면 모두 크기가 같은 검은 색 사각형이됩니다. 비트 맵.
여기 내 코드입니다 : 나는 비트 블리트를 사용하려는 이유는) 내가 전에 사용했습니다있다
Dim srcBmp As New Bitmap(Me.GetType, "colorwheel.bmp")
Dim drect As New Rectangle(0, 0, 233, 233)
'srcGrp = PictureBox1.CreateGraphics 'This works.
srcGrp = Graphics.FromImage(srcBmp) 'This doesn't
targetGrp = Me.CreateGraphics 'destination graphics
srcHdc = srcGrp.GetHdc
TargetHdc = targetGrp.GetHdc
BitBlt(TargetHdc, 0, 0, 233, 233, srcHdc, 0, 0, SRCCOPY)
srcGrp.ReleaseHdc(srcHdc)
targetGrp.ReleaseHdc(TargetHdc)
targetGrp.Dispose()
srcBmp.Dispose()
srcGrp.Dispose()
, 그래서 나의 첫 번째 선택이었다. b) 일부 영역을 투명하게 마스킹하기 위해 흑백 마스크를 사용하는 것이 가능하다는 것을 알고 있습니다. 이는 내가 필요한 것입니다. b) 그래픽이 자주 움직이는 경우.
투명한 배경을 가진 그래픽을 양식이나 그림 상자에 그리는 더 좋은 방법이 있습니까? 예 : 알파 채널이있는 PNG?
여기에 스레드를 부딪 치는 방법이 있다고 생각하지 않습니까? :) –