2014-10-06 68 views
2

我決定複製scmpoo,你可能已經在你的舊電腦上使用過,但它與任何新版本都不兼容,所以我決定重新制作它。複製scmpoo,流浪的羊

第一個問題是我還沒弄清楚如何在屏幕上畫羊。這就像我自己的屏幕不在我的範圍內D:

我試圖製作一個窗口裏面的圖像,但我不知道如何使窗口透明wile保持圖像可見?有任何想法嗎?我確信這是可能的。

我對windows.h有一些經驗,但不知道我是否可以使用它?

另外原來的綿羊可以站在窗戶和任務欄上,所以我需要一種方法來獲得它們的位置。

是否有辦法訪問其他窗口並在其中繪製羊? (主要是談論桌面),如果我可以訪問其他窗口,我可以得到他們的位置。

回答

4

假設你正在使用GDI +在Win32環境下,你需要注意的幾點問題:分層窗口的

這應該給你一個很好的起點來實現你的screenmate。爲了擺弄現有的窗戶和/或他們的大小使用EnumWindows

參考文獻:splash screen with GDI+


編輯:既然你的意見決定去CSplash,爲了改變到閃屏位置,你應該修改窗口位置

DWORD nScrWidth = ::GetSystemMetrics(SM_CXFULLSCREEN); 
    DWORD nScrHeight = ::GetSystemMetrics(SM_CYFULLSCREEN); 

    int x = (nScrWidth - m_dwWidth)/2; // Center horizontally 
    int y = (nScrHeight - m_dwHeight)/2; // Center vertically 
    m_hwnd = ::CreateWindowEx(WS_EX_TOPMOST|WS_EX_TOOLWINDOW, m_lpszClassName, 
           TEXT("Banner"), WS_POPUP, x, y, 
           m_dwWidth, m_dwHeight, NULL, NULL, NULL, this); 
+0

只是爲了讓我們知道我是如何解決最後一個庫問題的......我決定再次查看庫,並在5分鐘後意識到,當調用'RegisterClassEx'函數時,我的所有類都具有相同的默認類名。改變這一點讓我儘可能多地展示我需要的:) – zoran404 2014-10-15 17:02:30