Chinaunix首页 | 论坛 | 博客
  • 博客访问: 183295
  • 博文数量: 35
  • 博客积分: 762
  • 博客等级: 上士
  • 技术积分: 317
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-30 21:38
文章分类

全部博文(35)

文章存档

2015年(1)

2013年(3)

2012年(1)

2011年(30)

分类: C/C++

2011-05-02 15:06:12

 

  1. //加头文件
  2. #include <windows.h>
  3. //函数声明:私有的
  4. private:
  5. static bool enumUserWindowsCB(HWND hwnd,LPARAM lParam); //静态全局函数
  6.     HWND findDesktopIconWnd();
  7. //函数实现
  8. bool MainWindow::enumUserWindowsCB(HWND hwnd,LPARAM lParam)
  9. {
  10.     long wflags = GetWindowLong(hwnd, GWL_STYLE);
  11.     if(!(wflags & WS_VISIBLE)) return TRUE;

  12.     HWND sndWnd;
  13.     if( !(sndWnd=FindWindowEx(hwnd, NULL, L"SHELLDLL_DefView", NULL)) ) return TRUE;
  14.     HWND targetWnd;
  15.     if( !(targetWnd=FindWindowEx(sndWnd, NULL, L"SysListView32", L"FolderView")) ) return TRUE;

  16.     HWND* resultHwnd = (HWND*)lParam;
  17.     *resultHwnd = targetWnd;
  18.     return FALSE;
  19. }


  20. HWND MainWindow::findDesktopIconWnd()
  21. {
  22.     HWND resultHwnd = NULL;
  23.     EnumWindows((WNDENUMPROC)enumUserWindowsCB, (LPARAM)&resultHwnd);
  24.     return resultHwnd;
  25. }
  26. //函数调用
  27. HWND desktopHwnd = findDesktopIconWnd();
  28.     if(desktopHwnd)
  29.         SetParent(this->winId(), desktopHwnd);

适用于Win XP与Win7,其他未测试

阅读(3799) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:qt库裁剪

给主人留下些什么吧!~~