我决定复制scmpoo,你可能已经在旧电脑上使用了它,但它与任何新版本不兼容,所以我决定重新制作它。
第一个问题是我还没弄明白如何在屏幕上画羊。就像我自己的屏幕一样,我无法触及D:
我尝试在里面制作一个带有图像的窗口,但我不知道如何使窗口保持透明,保持图像可见?有任何想法吗?我确定这可能不知何故。
我对windows.h有一些经验,但不知道我是否可以使用它?
原来的羊也可以站在窗户和任务栏上,所以我也需要一种方法来获得它们的位置。
是否有办法访问其他窗户并在其中画羊? (主要谈论桌面)如果我可以访问其他窗口,我可以得到他们的位置。
答案 0 :(得分:4)
假设您在Win32环境中使用GDI +,您需要注意以下几点:
使用UpdateLayeredWindow可以实现图像可视化时分层窗口的透明度(假设您的图像位于选定的HBITMAP中)
使用layered window进行流畅的图片重绘
这应该为你提供一个很好的起点来实现你的同事。为了摆弄现有的窗口和/或尺寸,请使用EnumWindows。
编辑:既然您在评论中决定选择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);