$如何截获“桌面刷新消息”,写了一个桌面图标透明的程序(有代码),但桌面刷新后就又要运行程序,不爽。
MPU 2003-09-13 05:35:22 $如何截获“桌面刷新消息”,写了一个桌面图标透明的程序(有代码),但桌面刷新后就又要运行程序,不爽。
估计用系统钩子搞吧。
有高手告诉一下吧!
谢谢!
/*本菜鸟一直想搞个和像“Windows优化大师”一样的桌面图标透明程序。
*
*由于没有头绪,就在晚上乱搜一番。找到一些程序,它们的GDI.DLL都调用UnrealizeObject。
*
*~◎搞不懂~~~@@@
*
*后来找到一用VB6写的源码,还好我看过几天VB6的书,虽然不会用,但源码还看懂。
*
*于是改为以下“自己认的”最简代码。
*
*不怕大家笑话,我还没全看懂!
*
*我不明白程序中FindWindow和FindWindowEx的作用,能否讲一下。
*
*另外0xFFFFFFFF有 8 个 ‘F’是不是由于16位色的原因??
*/
#define _WIN32_WINNT 0x0500
#include <windows.h>
#include <commctrl.h>
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine, int iCmdShow)
{
HWND hWindow;
hWindow = FindWindow("Progman", "Program Manager");
hWindow = FindWindowEx(hWindow, 0, "SHELLDLL_DefView", "");
hWindow = FindWindowEx(hWindow, 0, "SysListView32", "");
SendMessage(hWindow, LVM_SETTEXTBKCOLOR, 0, 0xFFFFFFFF);
//图标文字旁边的背景0xFFFFFFFF == 透明
SendMessage( hWindow, LVM_REDRAWITEMS, 0, SendMessage(hWindow, LVM_GETITEMCOUNT, 0, 0));
return 0;
}