none
vc++中如何实现类似fences软件中的栅栏桌面 RRS feed

  • 问题

  • fences(http://www.stardock.com/products/fences/)是stardock公司开发的一款桌面小工具,是.net开发的。我也想用vc++做一个类似的软件。因为不熟悉windows shell所以今天找了很久也没有找到入手的方法。希望大家能给出些方向供参考,如果是shell的话,也帮忙指明一下方向。谢谢。
    2011年8月16日 11:43

答案

  • 你好,

     

    桌面图标是放在 SysListView32这个列表中,您可以通过FindWindowEx 方法来获取到桌面图标例如:

    if(((hWnd = ::FindWindowEx(NULL, NULL, "Progman", NULL)) == NULL) ||

     ((hWnd = ::FindWindowEx(hWnd, NULL, "SHELLDLL_DefView", NULL)) == NULL) ||

     ((hWnd = ::FindWindowEx(hWnd, NULL, "SysListView32", NULL)) == NULL))

     {

     MessageBox("Could not get desktop window.");

     goto Exit;

     }

    同时您也可以使用ListView_RedrawItems来重新强制绘制某个范围内的 ListViewItem。或者您也可以尝试使用LVM_REDRAWITEMS消息来重新绘制。

     

    希望我的建议能够帮助您解决您的问题


    Rob Pan [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 11Record 2011年8月18日 12:26
    2011年8月18日 6:23