[英]Drawing on C# Bitmap with C++
我有一个在HDC上画线的第三方dll(普通C ++)。 我想将这些行放在C#位图或窗体上。
我试图给C ++一个HBITMAP或Graphics.FromImage(bitmap)的HDC,但是以上方法都不适合我。
使用MFC TestApp,使用以下代码即可正常运行
HWND handle = pStatic->GetSafeHwnd();
CDC* dc = pStatic->GetDC();
Draw(dc);
我的问题是:使用上述Draw(HDC)方法在位图或表单上绘制该怎么做/使用?
我希望你能帮助我。 提前致谢,
帕特里克
要在C#位图上绘制,请使用以下代码:
Graphics gr = Graphics.FromImage(MyBitmap);
IntPtr hdc = gr.GetHdc();
YourCPPDrawFunction(hdc);
gr.ReleaseHdc(hdc);
YourCPPDrawFunction的示例是:
void YourCPPDrawFunction(HDC hDc)
{
SelectObject(hDc, GetStockObject(BLACK_PEN));
Rectangle(hDc, 10, 10, 20, 20);
}
要直接在窗体表面上绘制,请使用以下代码:
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
IntPtr hdc = e.Graphics.GetHdc();
YourCPPDrawFunction(hdc);
e.Graphics.ReleaseHdc(hdc);
}
完成绘制后,不要忘记调用Graphics.ReleaseHdc(),否则您将看不到绘制结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.