【发布时间】:2013-07-10 17:38:54
【问题描述】:
我正在为 Clarion(Clarion 是 C++ 类型语言)程序编写 .NET DLL。 Clarion 程序调用一个 .NET DLL 方法,将 Clarion 图像控件的 HWND 传递给它。在 .NET DLL 中,我可以从传入的 HWND 中获得正确的 RECT(上、右、下、左),所以我知道我有正确的 HWND。
我似乎无法发现在 .NET DLL 中将位图写入 HWND。在 Clarion 方面,我会这样做:
?myImageControl{PROP:ImageBits} = ImageBytes
其中 ImageBytes 是字节数组,例如文件或 Clarion STRING(固定长度,不以零结尾)。
提前致谢。
【问题讨论】:
-
HDC hdc = GetDC(hwnd);和SetPixel(hdc, x, y, RGB(255,255,255));?这使用来自 C++ 的 Win32,但可能会有所帮助:falloutsoftware.com/tutorials/win/win3.htm 当然BitBlt()可能会更快... -
谢谢,但我需要知道如何在 C# 中执行此操作。 C# 不识别 HDC、GetDC 等。也许有办法让 C# 识别它们,但我现在不知道该怎么做。如果我用 C++ 编写,那就很简单了。
-
使用 P/Invoke 或 C++/CLI 互操作。见:msdn.microsoft.com/en-us/library/aa288468%28v=vs.71%29.aspx
标签: c# .net bitmap hwnd clarion