88250 发表于 2006-6-11 14:49:55

传个自己做的小软件-任务栏透明工具!

任务栏透明工具!

先发SDK版本,说明一下原理。。。。呵呵:


#include "stdafx.h"
typedef int (__stdcall *DL) (HWND hWnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags);

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPTSTR lpCmdLine,int nCmdShow)
{
      DL DLSetLayeredWindowAttributes = NULL;
      HMODULE hUser32DLL = NULL;
      HWND hWnd = NULL;

      hUser32DLL = GetModuleHandle("User32.dll");
      DLSetLayeredWindowAttributes = (DL)GetProcAddress(hUser32DLL, "SetLayeredWindowAttributes");
      hWnd = FindWindow("Shell_TrayWnd", "");

      SendMessage(hWnd, WM_STYLECHANGING, 0, 0);
      SetWindowLong(hWnd, GWL_EXSTYLE, 800000);
      (*DLSetLayeredWindowAttributes)(hWnd, 0, 128, 2);
      return 0;
}
这个就是实现的核心代码。。。。详细参看MSDN啦~下面的是MFC写的GUI。。。。

功能:

1.可以任意调整任务栏的透明度:0-255。

2.可以最小化到系统托盘,左键双击恢复,右键单击可以弹出退出菜单。

3.当用户输入的透明度值过小时会提示用户,并不最小化到系统托盘。

哎。。。。做这个东西学到了不少MFC应用。。。。呵呵!^_^
希望大家支持一下哦
PS.哎,我还停在VC6。。。。不会.NET。。。。
:9:

wttee 发表于 2006-6-11 15:56:45

支持。。。

雨夜心情 发表于 2006-6-11 17:13:50

怎么提示说没找到组件?我这里用不了呀

88250 发表于 2006-6-11 23:08:33

原帖由 雨夜心情 于 2006-6-11 17:13 发表
怎么提示说没找到组件?我这里用不了呀
是不是说没有那个什么XX的MFC.dll库?
装了VC的话复制到system32目录下就可以了

rainoxu 发表于 2006-6-11 23:10:44

嗯~~也许是吧~~

nobel 发表于 2006-6-11 23:11:55

mfc42d.dll未能启动,不装VC就不能运行了吗

88250 发表于 2006-6-13 12:35:55

原帖由 nobel 于 2006-6-11 23:11 发表
mfc42d.dll未能启动,不装VC就不能运行了吗
现在好了,我换成在Release下编译了。。。。应该可以了。:3:

rainoxu 发表于 2006-6-13 12:39:31

嗯,不错,不过建意改成百分制来控制透明度,没看你的说明我哪知道是0-255....相信别人都很粗心的啦~~辛苦你改一下啦

rainoxu 发表于 2006-6-13 12:40:29

再补一句,最好有热键,因为太透明时根本看不到托盘区的那个图标~~用热键呼出会比较方便一些

88250 发表于 2006-6-13 12:43:02

原帖由 rainoxu 于 2006-6-13 12:40 发表
再补一句,最好有热键,因为太透明时根本看不到托盘区的那个图标~~用热键呼出会比较方便一些
:4:呃。。。。现在已经停止对这个的开发了。。。。
页: [1] 2
查看完整版本: 传个自己做的小软件-任务栏透明工具!