2012-01-20 83 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