如何将95桌面的图标显示成为屏幕右对齐方式?(缺省为左对齐)(50分)

  • 主题发起人 主题发起人 ZhangFei
  • 开始时间 开始时间
Z

ZhangFei

Unregistered / Unconfirmed
GUEST, unregistred user!
笨办法:
1.关闭"排列图标"中的"自动排列"
2. 选取所有图标移动到屏幕右边
3. 大致右对齐一下
4. 选对齐图标
按上述方法不光可以右对齐, 还可以把图标排列在屏幕四周, 中间空着(或你可以想象
到的任何排列方法) :)
 
Another_eYes:
ZhangFei好象要用DELPHI去做!
ZhangFei:
既然注册表里面可以改掉回收站的名字,
你可以在注册表里面找一找,应该可以的!:)
 
Windows桌面实际上是一个ListView,可以取得它的句柄,下面是个例子:
...
//获得桌面listview的句柄
function GetDesktopListViewHandle: THandle;
var
S: String;
begin
Result := FindWindow('ProgMan', nil);
//取得ProgMan窗口句柄
Result := GetWindow(Result, GW_CHILD);
//取子窗口句柄
Result := GetWindow(Result, GW_CHILD);
//再取子窗口句柄
SetLength(S, 40);
GetClassName(Result, PChar(S), 39);
if PChar(S) <> 'SysListView32' then
Result := 0;
end;

//让桌面图标靠左对齐
procedure TForm1.Button1Click(Sender: TObject);
begin
SendMessage(GetDesktopListViewHandle,LVM_ARRANGE,LVA_ALIGNLEFT,0);
end;

//让桌面图标最近对齐(使图标对齐到最近的网格中间)
procedure TForm1.Button2Click(Sender: TObject);
begin
SendMessage(GetDesktopListViewHandle,LVM_ARRANGE,LVA_SNAPTOGRID,0);
end;
...
但是,使ListView图标最右对齐好像做不到:((
另外,普通ListView可以最上对齐,而桌面的ListView却不可以,可能是
因为Desktop用自己的Arrange方法覆盖了普通ListView的Arrange方法.
既然取得了桌面ListView的句柄,那么所能做到的就不仅仅是排列图标了...
 
Windows桌面实际上是一个ListView,可以取得它的句柄,下面是个例子:
...
//获得桌面listview的句柄
function GetDesktopListViewHandle: THandle;
var
S: String;
begin
Result := FindWindow('ProgMan', nil);
//取得ProgMan窗口句柄
Result := GetWindow(Result, GW_CHILD);
//取子窗口句柄
Result := GetWindow(Result, GW_CHILD);
//再取子窗口句柄
SetLength(S, 40);
GetClassName(Result, PChar(S), 39);
if PChar(S) <> 'SysListView32' then
Result := 0;
end;

//让桌面图标靠左对齐
procedure TForm1.Button1Click(Sender: TObject);
begin
SendMessage(GetDesktopListViewHandle,LVM_ARRANGE,LVA_ALIGNLEFT,0);
end;

//让桌面图标最近对齐(使图标对齐到最近的网格中间)
procedure TForm1.Button2Click(Sender: TObject);
begin
SendMessage(GetDesktopListViewHandle,LVM_ARRANGE,LVA_SNAPTOGRID,0);
end;
...
但是,使ListView图标最右对齐好像做不到:((
另外,普通ListView可以最上对齐,而桌面的ListView却不可以,可能是
因为Desktop用自己的Arrange方法覆盖了普通ListView的Arrange方法.
既然取得了桌面ListView的句柄,那么所能做到的就不仅仅是排列图标了...
 
我见过有个地方可以下载一个可以自己控制排列方法得软件,但是没有下载成功,现在不知道地址了,但是一点是肯定得,windows记录了每个图标得位置,似乎不是得获取一个tlistview这么简单
 
我见过有个地方可以下载一个可以自己控制排列方法得软件,但是没有下载成功,现在不知道地址了,但是一点是肯定得,windows记录了每个图标得位置,似乎不是得获取一个tlistview这么简单
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部