请问如何得到桌面图标大小改变的消息?

cx820402 2009-07-16 10:18:28
请问是什么消息呢,谢谢!
...全文
67 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
biweilun 2009-07-16
  • 打赏
  • 举报
回复
整个的桌面其实就是一个SysListView32控件,获取桌面图标的大小可以用sendmessage给桌面发送lvm_getitemrect消息,获取桌面图标的位置可以用sendmessage发送LVM_GETITEMPOSITION消息,设置图标位置可以用sendmessage给桌面发送LVM_SETITEMPOSITION消息:


LVM_GETITEMPOSITION Message

--------------------------------------------------------------------------------

Retrieves the position of a list-view item. You can send this message explicitly or by using the ListView_GetItemPosition macro.

Syntax


To send this message, call the SendMessage function as follows.
lResult = SendMessage( // returns LRESULT in lResult
(HWND)hWndControl, // handle to destination control
(UINT) LVM_GETITEMPOSITION, // message ID
(WPARAM) wParam, // = (WPARAM) (int) i;
(LPARAM) lParam // = (LPARAM) (POINT*) ppt;
);
Parameters

i
Index of the list-view item.
ppt
Pointer to a POINT structure that receives the position of the item's upper-left corner, in view coordinates.
Return Value

Returns TRUE if successful, or FALSE otherwise.


*******************************************************************************


LVM_SETITEMPOSITION Message

--------------------------------------------------------------------------------

Moves an item to a specified position in a list-view control (must be in icon or small icon view). You can send this message explicitly or by using the ListView_SetItemPosition macro.


To send this message, call the SendMessage function as follows.
Syntax

lResult = SendMessage( // returns LRESULT in lResult
(HWND) hWndControl, // handle to destination control
(UINT) LVM_SETITEMPOSITION, // message ID
(WPARAM) wParam, // = (WPARAM) (int) i
(LPARAM) lParam // = (LPARAM) MAKELPARAM ((int) x, (int) y)
);

Parameters

i
Index of the list-view item.
x
New x-position of the item's upper-left corner, in view coordinates.
y
New y-position of the item's upper-left corner, in view coordinates.
Return Value

Returns TRUE if successful, or FALSE otherwise.
rspider2003 2009-07-16
  • 打赏
  • 举报
回复
WM_DISPLAYCHANGE
cx820402 2009-07-16
  • 打赏
  • 举报
回复
有没有简单的消息的呢,这是最简单的。
你是否因为桌面的图标太多太乱而让自己心烦?你是否厌倦了一成不变的图标排列方式?你是否嫌弃自己的桌面不够美观不够潇洒?你是否厌倦了枯燥的桌面?你想给它更多的意味,并点燃你的热情呢?想让桌面上的图标炫耀起来吗?那就来吧…… Desktop Icon Toy 是一款桌面图标管理工具,你可以用它保存当前桌面图标的位置,激活被其它窗口挡住的图标、当然也可以去除快捷方式上的小箭头。 这个清凉简单的工具,你可以组织和安排所有的桌面图标变成简单的排列,或顶部或右方或使它们随时随地选择你的桌面的任何地方。 特点: -排列桌面图标 -保存桌面图标位置 -动画桌面图标 -隐藏桌面图标文本 -显示/隐藏桌面图标桌面图标文本点播 -锁定桌面图标 -交换桌面图标在主监视器 -更改桌面图标大小 -更改桌面图标文字颜色 -删除桌面图标快捷方式箭头 -启动桌面图标使用轻点鼠标 -自动选择图标时,在鼠标悬停 -鼠标经过图标时让图标抖动、摆动或其他效果 你可以把图标排列成许多复杂的形状、数字: -时钟(所有的图标将排列成时钟形状并显示准确的时间)。 -可排列成四角形、五角星、十字架,以及各种心形。 -可排列成水平或垂直的椭圆、螺旋状和圆形。 -可排列成三角形,菱形,五角形,六角形,和许多其他形状。 -对齐桌面图标到上下左右。 -整洁地贴齐到桌面边缘。 不仅如此,你还可以精确的排列图标: 按CTRL+方向键,它可以在这一方向上移动1个像素。 按ALT+方向键,它可以在这一方向上移动10个像素。 用自定义布局来改变图标的排列顺序,如把“我的电脑”排到最后一个,也可以按名称排序图标,或改变开始位置的第一个图标。

16,551

社区成员

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

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

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