`
wanjianfei
  • 浏览: 321184 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

玩转Windows桌面图标

阅读更多

玩转Windows桌面图标<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

大家一定和我一样对Windows的桌面十分不满意吧。那就拿起手术刀(Delphi)给它动动手术。

首先要对付的是桌面图标那一个个难看的、带有背景色的文字,不仅看上去别扭,还遮住了漂亮的墙纸,一定要去掉它,把它变成透明。其次就是图标的位置,只会傻傻地呆在屏幕的左边,还得我们一个个去拖,真累!给它来点新花样,Please Follow Me

1、 新建一工程,在 uses 中加入 CommCtrl 单元,窗体上加一个按钮;

2、 声明一个取得桌面句柄的函数:

function TForm1.GetDesktopHand: THandle;

begin

Result:=FindWindow('progman',nil);

Result:=GetWindow(Result,GW_Child);

Result:=GetWindow(Result,GW_Child);

end;

3、 声明一个设置图标文字颜色的过程:

procedure TForm1.SetTextColor(ForeClr, BackClr: TColor);

var Hand: THandle;

begin

Hand:= GetDesktopHand;

Listview_SetTextColor(Hand,ForeClr); // 设置文字前景色;

Listview_SetTextBkColor(Hand,BackClr); // 设置文字背景色,crNone 为透明;

Listview_RedrawItems(Hand,0,Listview_GetItemCount(Hand)); // 重画;

end;

有了上面的两个方法,你已经可以对桌面动小手术了。下面介绍图标的排列方式。

4、 以屏幕的中心为圆点作圆形排列:

procedure TForm1.Circle(r: integer); // 形参 r 为半径;

var

i, Count, CenterX, CenterY, TempR :integer;

Hand: THandle;

Radian: double;

TempRect: TRect;

DesktopHeight,DesktopWidth :integer;

X, Y : Word;

begin

Hand:=GetDesktopHand;

SystemParametersInfo(SPI_GetWorkArea,0,@TempRect,0); // 取得工作区域;

DesktopWidth:=TempRect.Right - TempRect.Left; // 工作区的宽(即屏幕的宽);

DesktopHeight:= TempRect.Bottom - TempRect.Top; // 工作区的高(即屏幕的高);

CenterX:=DesktopWidth div 2; // 取得圆心 X 坐标;

CenterY:=DesktopHeight div 2; // 圆心 Y 坐标;

if CenterX>CenterY then

TempR:=CenterY

else

TempR:=CenterX;

if r>TempR then r:=TempR; // 半径不能超过屏幕中心点到四边的最短距离;

Count:=Listview_GetItemCount(Hand); // 桌面上图标个数;

Radian:=2*3.14159/Count; // 相邻图标间的弧度;

for i:=0 to Count-1 do

begin

// 第一个图标排在正上方;

X:=Integer(CenterX+Trunc(r*Sin(i*Radian))); // 图标的X坐标;

Y:=Integer(CenterY+Trunc(r*Cos(i*Radian))); // 图标的Y坐标;

SendMessage(Hand,LVM_SetItemPosition,i,MakeLparam(X, y)); // 设置坐标;

end;

end;

5、 图标右对齐:

procedure AlignRight(Rec: Integer); // 形参 Rec 为一个图标所占区域大小,一般为77

var Hand: THandle;

h, I, j, DesktopHight, DesktopWidth :integer;

TempRect : TRect;

Begin

Hand:=GetDesktopHand;

SystemParametersInfo(SPI_GetWorkArea,0,@TempRect,0); // 取得工作区域;

DesktopWidth:=TempRect.Right - TempRect.Left; // 工作区的宽(即屏幕的宽);

DesktopHeight:= TempRect.Bottom - TempRect.Top; // 工作区的高(即屏幕的高);

I:=0; // 图标所排的列数

J:=0;

For h:=0 to Listview_GetItemCount(Hand)-1 do

Begin

Inc(j);

If j*rec>DesktopHeight then // 排完一列;

Begin

Inc(i); // 换列

J:=1;

End;

SendMessage(Hand,LVM_SetItemPosition,h,

MakeLparam(DesktopWidth-Rec*(I+1),Rec*(j-1));

End; // for 循环结束;

End;

6、 在按钮的单击事件中加入代码:

procedure TForm1.Button1Click(Sender: TObject);

begin

SetTextColor(clBlack,crNone); // 设置图标文字颜色;

Circle(200); // 把图标排列成半径为200的圆;

// AlignRight(77) // 右对齐;

end;

编译运行,单击按钮。哇塞!太棒了!你还可发挥你的想象力,对程序稍加改进,把图标排成蛇形、椭圆形、环形等等。以上程序在 Win98+Delphi5下运行通过。

分享到:
评论

相关推荐

    让Linux玩转 Windows XP远程桌面.pdf

    标题中的“让Linux玩转Windows XP远程桌面”指的是在Linux操作系统中使用软件来访问和控制Windows XP系统的远程桌面功能。这个过程通常涉及到Windows XP的远程桌面设置和在Linux上安装及使用特定的软件来实现这一...

    C++桌面图标一百种玩法系列之三【整理-时钟】完整

    在本篇中,我们将深入探讨"C++桌面图标一百种玩法系列之三——【整理-时钟】"这一主题。这个项目使用C++编程语言在桌面上创建了一个动态时钟,同时还包含了开头的移动动画效果,这无疑为学习C++的开发者提供了一种...

    C++桌面图标一百种玩法系列之三【整理-时钟】

    总的来说,"C++桌面图标一百种玩法系列之三【整理-时钟】"是一个综合性的项目,涵盖了C++编程、Windows API、GUI编程、资源管理、时间处理等多个方面,对提升开发者在实际项目中的技能很有帮助。通过这个项目,...

    Windows桌面特效 deskspace

    例如,你可以在一个桌面上处理工作文档,另一个桌面上浏览网页,第三个桌面上玩游戏,这样可以有效提高工作效率,保持清晰的工作和娱乐界限。 其次,deskspace提供了华丽的切换效果。当用户在不同桌面间切换时,...

    玩转Ubuntu 3D桌面和其他特效

    ### 玩转Ubuntu 3D桌面和其他特效详解 #### 一、3D桌面设置与配置 ##### 1. 开启3D桌面效果 - **步骤**: - 打开“系统”-&gt;“首选项”-&gt;“高级桌面效果设置”(即CCSM, CompizConfig设置管理器)。 - 在...

    高效玩转Windows_7的_70_个技巧

    8. **小工具置顶**:按下Alt+G,可以让桌面小工具在其他窗口之上显示,方便随时查看。 9. **背景照片幻灯片**:在桌面背景设置中,可以选择多张图片并设置幻灯片播放,实现动态桌面背景,按住Ctrl选择图片并设置...

    让你玩转Windows 7的20个技巧.docx

    1. **任务栏图标快捷方式**:按下Windows键,再按对应数字键(1-9),可以直接启动任务栏上的程序。例如,Windows-1可快速打开第一个图标代表的应用,如Internet Explorer。 2. **任务栏项目移动**:在Windows 7中...

    教您玩转 Q+ PC.docx

    **桌面图标管理** 为了更好地整理桌面,Q+ 设计了桌面管理模式: 1. **进入编辑状态**:点击Q+桌面右上角的“进入管理模式”图标,可以开始对桌面图标进行管理。 2. **管理图标**:在管理模式下,你可以自由地删除...

    Win7系统桌面炫酷特效玩法.docx

    以下是一些关于如何玩转Windows 7桌面的详细说明: 首先,我们可以设置桌面自动更换壁纸,这是一个非常方便且时尚的功能。通过在桌面空白处点击右键,选择“个性化”,进入个性化设置界面。在此界面中,用户可以...

    QQ表情桌面图标下载

    在Windows操作系统中,用户可以通过右键点击桌面的空白区域,选择“个性化”或“属性”,然后在弹出的菜单中找到“桌面图标设置”。在这里,用户可以选择系统提供的图标,或者自定义图标。自定义时,需要先找到图标...

    玩转注册表——非常经典的注册表!

    ### 玩转注册表——非常经典的注册表! 在计算机领域中,注册表是一个至关重要的数据库,用于存储操作系统和其他软件的设置与选项。通过编辑注册表,用户可以更改各种高级功能,实现对系统的深度定制。本文将根据...

    玩转电脑技巧全书总汇

    - 合理安排桌面图标 - 使用任务栏快捷方式 - 自定义电源计划节省电力 - 使用热键快速操作 9. **Windows XP优化**: - 关闭不必要的启动项目 - 调整视觉效果 - 禁用不使用的系统服务 - 定期清理系统垃圾 10...

    玩转电脑技巧

    在“玩转电脑技巧”这个主题中,我们探讨的是如何高效、熟练地使用个人电脑,尤其是Windows操作系统。这个专题涵盖了广泛的知识点,旨在帮助用户提升电脑操作技能,使其成为真正的Windows专家。以下是一些关键的电脑...

    玩转Win7必看的快捷键.docx

    ### 玩转Win7必看的快捷键 随着信息技术的发展和计算机的普及,操作系统作为用户与硬件之间的桥梁,其重要性不言而喻。Windows 7作为微软于2021年推出的新一代操作系统,凭借其强大的功能、美观的界面和出色的性能...

    零命令玩转Ubuntu 8.10(基本配置篇)

    Ubuntu 8.10默认提供了一些基本的桌面图标,如“计算机”、“回收站”等。你可以在“桌面”上右键单击,选择“属性”来自定义这些图标。如果你希望添加更多图标,例如网络驱动器或特定的文件夹,可以点击“添加到...

    《玩转电脑技巧全书》1、2

    - 自定义个性化设置:如更改主题、调整桌面图标的布局等。 #### 五、个人电脑详细的安全设置方法 - **概述**:这部分内容着重介绍了如何对个人电脑进行安全设置,以防止病毒和恶意软件的侵入。 - **核心知识点**:...

    玩转win7自带功能,炫动系统日常.docx

    6. **Windows 7 Themes(Windows 7主题)**:Windows 7的主题功能让桌面变得更加个性化,包括桌面背景、屏幕保护、边框颜色和声音。用户不仅可以选择预装的Aero主题,还可以在线下载更多喜欢的主题,打造独一无二的...

    【❤玩转电脑de各种绝招——『史上最全』❤】

    在标题和描述中提及了“玩转电脑”,其中涉及到了注册表编辑器的使用方法。注册表是Windows操作系统的核心数据库之一,用于存储系统设置、应用程序配置等重要信息。通过正确地使用注册表编辑器(regedit),用户可以...

    玩转win7系统_让你自由配置视觉效果

    ### 玩转Win7系统:自由配置视觉效果 随着技术的发展与个人需求的变化,操作系统在不断进化,其中,微软的Windows 7(以下简称Win7)凭借其强大的功能与友好的用户界面,深受广大用户的喜爱。然而,对于部分硬件...

Global site tag (gtag.js) - Google Analytics