我正在制作一个看起来像Opengl的课程。该项目最重要的部分是用户绘制的地方。到目前为止,我已使用此代码从名为Cube的表单中访问名为Frame的图片框:
Private Sub RenderScene()
Dim Form_Name As Cube
Form_Name = Cube
If GL_GraphicsInitialized Then
Dim InitBMP As New Bitmap(Form_Name.Frame.Width, Form_Name.Frame.Height)
Dim LoadGraph As Graphics = Graphics.FromImage(InitBMP)
For I As Double = 0 To ObjectsIndex - 1
For J As Double = 0 To Objects(I).FaceCount - 1
For W As Double = 1 To Objects(I).Face(J).PointCount - 1
With Objects(I).Face(J)
LoadGraph.DrawLine(Pen1, .PointVertexes(W - 1).X + Objects(I).Position.X, .PointVertexes(W - 1).Y + Objects(I).Position.Y, .PointVertexes(W).X + Objects(I).Position.X, .PointVertexes(W).Y + Objects(I).Position.Y)
End With
Next
''Connects the last vertex with the first one
With Objects(I).Face(J)
LoadGraph.DrawLine(Pen1, .PointVertexes(Objects(I).Face(J).PointCount - 1).X + Objects(I).Position.X, .PointVertexes(Objects(I).Face(J).PointCount - 1).Y + Objects(I).Position.Y, .PointVertexes(0).X + Objects(I).Position.X, .PointVertexes(0).Y + Objects(I).Position.Y)
End With
Next
Next
Form_Name.Frame.Image = InitBMP
End Sub
但正如你所看到的,我必须使用那段烦人的代码Dim Form_Name As Cube
和Form_Name = Cube
。我还使用了图片框的名称。
但我希望它是便于携带的,所以我提出了一个非常简单的想法:我可以拿出图片盒的句柄(我认为它叫做HDC)并使用该句柄绘制到图片框。
但我找不到任何Frame.hdc属性(我习惯了vb6)。有没有办法做到这一点?