zoukankan      html  css  js  c++  java
  • [VC++]如何得到桌面窗口的句柄(桌面图标)

    如何得到桌面窗口的句柄呢?????楼主jzyhummel(篱影)2001-07-08 18:55:12 在 VC/MFC / 基础类 提问
    我想得到WINDOW桌面句柄,来对桌面图标进行操作,不知道如何得到呢??用什么涵数呢?我试了试用::GetDesktopWindow()来得到句柄不知道对了没有。假如我想改变桌面的字体的颜色该怎么做呢??  
        
      不知道有没有VC资料????我手上只有delphi的程序  
      各位有什么高见,可以说说吗?  
        
      给个网址也行,或是发maile给我:jzyhummel@163.net  
        
      
    问题点数:20、回复次数:5
    Top

    1 楼azuo_lee(宿醉)回复于 2001-07-08 19:38:53 得分 5GetDestopWindow取到的是桌面窗口的句柄,但不是我们所看到的那个包含图标的窗口。包含图标的窗口实际上是DesktopWindow的一个字窗口。确切地讲,Desktop   Window包含一个无标题的、类名为“SHELLDLL_DefView”的子窗口,这个字窗口又包含一个无标题的、类名为“SysListView32”的子窗口——这才是那个真正包含桌面图标的窗口。
    Top
    2 楼savegod(上帝可能还存在)回复于 2001-07-08 19:41:10 得分 0 HWND_DESKTOP就是桌面窗口句柄了。
    Top
    3 楼jzyhummel(篱影)回复于 2001-07-09 13:10:31 得分 0 谢谢回复  
      我想用桌面窗口句柄,操作桌面图标(比如改颜色,右对齐。。。),有人能告诉我这方面的资料吗?昨天写了个spy,看看类名还真是SysListView32,ID为1。谢谢azuo_lee()。  
        
      有资料的可以给我个网址吗?  
      有现成的程序可以给我发一个吗?jzyhummel@163.net  
      
    Top
    4 楼suprer(爱完美的人)回复于 2001-07-09 16:25:09 得分 15真巧,我也在研究这个东西,大家SHARE一下。  
      操作桌面图标,要使用到以下函数,  
      HWND   GetDesktopListViewHandle(void)  
      {  
      HWND   hResult;  
      hResult=::FindWindow("ProgMan",NULL);  
      hResult=::GetWindow(hResult,GW_CHILD);  
      hResult=::GetWindow(hResult,GW_CHILD);  
      return   hResult;  
      }  
        
      void   AlignIcon(int   nRectWidth)//nRectWidth是每个图标占用的区域大小系统为75  
      {  
      HWND   hDesktop;  
      int   h,i,j,nDesktopWidth,   nDesktopHeight;  
      RECT   rc;  
      hDesktop=GetDesktopListViewHandle();  
      ::SystemParametersInfo(SPI_GETWORKAREA,0,&rc,0);  
      nDesktopWidth=rc.right-rc.left;  
      nDesktopHeight=rc.bottom-rc.top;  
      i=0;  
      j=0;  
      //右对齐  
      for(h=0;h<ListView_GetItemCount(hDesktop);h++)  
      {  
      if((i+1)*nRectWidth>nDesktopHeight)  
      {  
      i=0;  
      j++;  
      }  
      SendMessage(hDesktop,  
      LVM_SETITEMPOSITION,  
      h,  
      MAKELPARAM(nDesktopWidth-(j+1)*nRectWidth+21,i*nRectWidth+2));//+21   和 +2是对照系统的位置修改的,  
      i++;  
      }  
        
      想知道更多的话就在MSDN中输入LVM_SETTEXTCOLOR去看一看。有许多好东西。
    Top
    5 楼jzyhummel(篱影)回复于 2001-07-09 18:19:48 得分 0 哈哈。。。。。怎么说的话都和书上的一样啊(《电脑爱好者》九月号的),不会你就是作者吧,  
      不过很感谢你的帮助。  
      来。。。。。加分吧。
  • 相关阅读:
    springboot整合log4j2
    document解析html
    关于字符串读写乱码的解决方法浅谈
    BOM知识整理
    es6的Map()构造函数
    es6的Set()构造函数
    关于node的path模块
    java总结(方法与对象)
    webpack3.0+总结
    java总结(二)(运算符)
  • 原文地址:https://www.cnblogs.com/boneking/p/1337799.html
Copyright © 2011-2022 走看看