2012-01-20 33 views
0

如何绘制.png文件到特定的窗口,例如记事本的示例?VC++(.Net)2010将图形绘制到窗口

HWND hWnd = FindWindow(0, "Untitled - Notepad"); 

void DrawTohWnd() 
{ 
    Image^ newImage = Image::FromFile("smile.png"); 
    //Draw newImage to Window (Notepad)... 
    //... 
} 
+0

这需要在进程中注入一个DLL,以便您可以对窗口进行子类化并拦截绘制消息。你不能在C++/CLI中编写这样的代码,它需要本地代码。很难得到正确的。 –

+0

@HansPassant:你对DLL注入是正确的。但托管代码可以做窗口子类很好。请参阅'NativeWindow :: AssignHandle'。 –

回答

2

最简单的方法是使用Graphics::DrawImage method并在Image对象传递(与指定绘图选项的任何其他期望的参数一起)。

但是这需要您有一个Graphics类的实例对应于您的窗口(HWND)。你可以拨打Graphics::FromHwnd method

尽管如此,请谨慎使用您编写的代码。通过他们的标题来搜索窗口是一种固有的脆弱方法 - 通常会改变窗口的标题。

+0

谢谢,是的,我只是很快地输入了代码,只是为了让你们更好地理解我的目标是什么。 – Bawss