★★如何用 HOOK 截获 LVM_SETTEXTBKCOLOR 消息(桌面图标文字背景刷新)(有代码)????

MPU 2003-09-14 04:35:02
$如何截获“截获 LVM_SETTEXTBKCOLOR 消息(桌面图标文字背景刷新)”,
写了一个桌面图标透明的程序(有代码),但桌面刷新后就又要运行程序,不爽。

估计用系统钩子搞吧。

有高手告诉一下吧!

谢谢!

!!!!!!!!!!!!!!!下面代码搞不定,有人帮忙吗!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

// 桌面图标文字背景透明.cpp : Defines the entry point for the application.

#define _WIN32_WINNT 0x0500
#include <windows.h>
#include <commctrl.h>

HWND hWindow;
HHOOK g_Hook = NULL;
LRESULT CALLBACK GetMsgProc(int code,WPARAM wParam,LPARAM lParam);

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
g_Hook = SetWindowsHookEx(WH_GETMESSAGE,GetMsgProc,hInstance,0);

MessageBox (NULL,TEXT("想截获刷新消息,使桌面图标文字透明"),TEXT("桌面图标文字透明"),MB_OK);

UnhookWindowsHookEx(g_Hook);

return 0;
}

LRESULT CALLBACK GetMsgProc(int code,WPARAM wParam,LPARAM lParam)
{
switch (code)
{
case LVM_SETTEXTBKCOLOR: //想截获的消息
//下面是"桌面图标文字背景透明"的代码!!
hWindow = FindWindow("Progman", "Program Manager");
hWindow = FindWindowEx(hWindow, 0, "SHELLDLL_DefView", "");
hWindow = FindWindowEx(hWindow, 0, "SysListView32", "");
SendMessage(hWindow, LVM_SETTEXTBKCOLOR, 0, 0xffffffff);
// Turn background to transparent
InvalidateRect(NULL, NULL, TRUE); // Repaint

break;
}
return CallNextHookEx(NULL, code, wParam, lParam);
}
...全文
90 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
HongHuer 2003-10-16
  • 打赏
  • 举报
回复
系统钩子 要写到 dll 中的啊。

如果放在 .exe 中,只能是 thread scope。

也就是 你的 GetMsgProc 只可能在当前进程中的 线程 中被调用。
你可以写个测试程序测试一下。

//MSDN

Hook Scope

WH_CALLWNDPROC Thread or global
WH_CALLWNDPROCRET Thread or global
WH_CBT Thread or global
WH_DEBUG Thread or global
WH_FOREGROUNDIDLE Thread or global
WH_GETMESSAGE Thread or global
WH_JOURNALPLAYBACK Global only
WH_JOURNALRECORD Global only
WH_KEYBOARD Thread or global
WH_KEYBOARD_LL Global only
WH_MOUSE Thread or global
WH_MOUSE_LL Global only
WH_MSGFILTER Thread or global
WH_SHELL Thread or global
WH_SYSMSGFILTER Global only

MPU 2003-09-15
  • 打赏
  • 举报
回复
每人回答吗?????????????????/
MPU 2003-09-14
  • 打赏
  • 举报
回复
MPU 2003-09-14
  • 打赏
  • 举报
回复
自己顶一下!!!!!!!!!!!!
chen_pin 2003-09-14
  • 打赏
  • 举报
回复
Up it

16,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧