求一张Android蜂巢系统的的壁纸,背景是多个六边形组合而成,六边形的...
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求一张Android蜂巢系统的的壁纸,背景是多个六边形组合而成,六边形的...相关的知识,希望对你有一定的参考价值。
求一张android蜂巢系统的的壁纸,背景是多个六边形组合而成,六边形的边是蓝色,整体的色调是蓝和黑
好象是这张:
追问请问有大一点的吗?
追答1
参考技术A 低调一点 参考技术B 楼主去JIFENGSHICHANG里搜搜,很多主题,还有变形金刚的呢,如果不喜欢,这里有很多种,免费无病毒。VC++如何获取并保存桌面背景?
我想要获取整个桌面背景,要求不带软件快捷方式等图标,也不是要桌面壁纸路径。
假如用户用一张小图片做壁纸,且是以居中的方式显示在桌面,这样没被图片覆盖的桌面就用纯色来填充了,我想用vc获取这种样式的整个桌面背景并保存为图片。
请不要乱贴别人的代码,谢谢。
1)获取窗口句柄,桌面其实里面有一个LISTVIEW,因此要获取的窗口句柄不是DESKTOP,而是LISTVIEW
2)调用ClistView的GetBkImage或对应的WIN32 API函数获取LISTVIEW中LISTCTRL控件所具有的背景图片的详细信息(参见MSDN中关于LVBKIMAGE结构的说明)
3)由于桌面对应的CListCtrl控件不是我们自己程序中创建的控件,因此不能直接调用GetBkImage。因此比较麻烦的事情就在这里,需要下钩子,将自己的线程代码注入到CListCtrl所在的进程中,然后调用GetBkImage的WIN32 API函数获取背景图片的详细信息,最后反馈到自己进程中进行绘制,最终保存至BMP图片。
不知道楼主明白了没有,总之没什么基本功的话,该程序功能实现很困难。
换一个思路:
由于桌面在下次开机启动后能够被设置成上次关机前的状态。因此,桌面的信息肯定是被存在注册表中的。因此,如果通过读注册表来实现会容易很多。关键是壁纸对应的注册表键值需要楼主自己搜集了。
------------------------------------------
wawoo2007厉害,应该是个不错的办法。
HWND hwndPM = ::FindWindow(_T("ProgMan"), NULL); 参考技术A this->ShowWindow(SW_HIDE);
FindWindow(L"Shell_TrayWnd",NULL)->ShowWindow(SW_HIDE);
CWnd *pWndPrev;
pWndPrev=FindWindow(L"Progman",NULL);
if (pWndPrev)
pWndPrev->ShowWindow(SW_HIDE);
HDC myDC=::GetDC(0);
int x=GetSystemMetrics(SM_CXSCREEN);
int y=GetSystemMetrics(SM_CYSCREEN);
HDC hDCMemory = CreateCompatibleDC(myDC) ;
HBITMAP hBmp = CreateCompatibleBitmap(myDC, x, y) ;
HGDIOBJ hBmpPrev = SelectObject(hDCMemory, hBmp) ;
BitBlt(hDCMemory, 0, 0, x, y, myDC, 0, 0, SRCCOPY);
CImage image;
image.Attach(hBmp);
image.Save(L"c:\\1.bmp");
::ReleaseDC(0,myDC);
pWndPrev->ShowWindow(SW_SHOW);
this->ShowWindow(SW_SHOW);
FindWindow(L"Shell_TrayWnd",NULL)->ShowWindow(SW_SHOW);
放到函数体里面就行了。本回答被提问者采纳 参考技术B 1)找到 program manager 窗口,取句柄,ShowWindow 给它隐藏
2)截屏
3)恢复隐藏的窗口
以上是关于求一张Android蜂巢系统的的壁纸,背景是多个六边形组合而成,六边形的...的主要内容,如果未能解决你的问题,请参考以下文章
Android 静态/动态壁纸(Live wallpaper)开发-WallpaperService
壁纸分享:国外网友神作,一张融合了macOS所有版本系统壁纸的壁纸