在Compact Framework上使用GDI绘制控件

时间:2009-12-15 10:12:05

标签: c# compact-framework mobile textbox gdi

我需要在Compact Framework应用程序中绘制文本框,但直接使用Graphics对象。

我找到了Control.DrawToBitmap方法,我可以用它来绘制GDI,但它在Compact Framework上不可用。

任何提示?

3 个答案:

答案 0 :(得分:1)

Control.DrawToBitmap()是通过将WM_PRINT发送到控件以使其在内存设备上下文中绘制自身来实现的。如果您使用的是非标准控件,那么程序员没有实现此消息的可能性很大。我不认为它是由标准Windows Mobile控件实现的。

您唯一的其他办法就是将像素复制到屏幕上。 Graphics.CopyFromScreen()是禁止的,你必须P / Invoke BitBlt()API函数。可能在this thread.和pinvoke.net

中提供了有用的示例代码

答案 1 :(得分:0)

通常你只是继承自:Control,覆盖OnPaint并使用参数提供的图形对象。你试过这个吗?

答案 2 :(得分:0)

我不知道这是否可行....但从技术上讲,你可以使用反射来调用控件的OnPaint方法,并在一组新的PaintEventArgs中传入你自己的图形对象(Graphics.FromImage)。

它很丑陋.....但它可能工作。