如何获得其他程序的图标,并显示在View中

来源:清泛编译     2016-05-23 13:43:54    人气:     我有话说( 0 人参与)

1.属性页的添加:创建对话框的类,该类要从CpropertyPage继承;然后在要添加该对话框为 属性页的类(头文件)里创建CpropertySheet类的一

51. 如何获得其他程序的图标,并显示在View中

 [问题提出]
 有的时候,如:类资源管理器会遇到获得程序图标并显示的操作,如何实现呢?
 [解决方法]
 SDK函数SHGetFileInfo来获得有关文件的很多信息:如大小图标,属性,类型等. 
 [程序实现]
 建立名为My的SDI工程.在OnPaint()函数中加入:
 void CMyView::OnPaint() 
 {
  CPaintDC dc(this); // device context for painting
  HICON hIcon=:: ExtractIcon(AfxGetInstanceHandle(),_T("NotePad.exe"),0); 
  if (hIcon && hIcon!=(HICON)-1) 
  dc.DrawIcon(10,10,hIcon); 

  // TODO: Add your message handler code here
  // Do not call CView::OnPaint() for painting messages
 }
 说明:_T("NotePad.exe")指的是要获得什么程序的图标.
 或者在OnDraw()中(此时必须保证没有OnPaint()函数,想想为何?)
 void CMyView::OnDraw(CDC* pDC)
 {
  CMyDoc* pDoc = GetDocument();
  ASSERT_VALID(pDoc);
  // TODO: add draw code for native data here
  HICON hIcon=:: ExtractIcon(AfxGetInstanceHandle(),_T("NotePad.exe"),0); 
  if (hIcon &&hIcon!=(HICON)-1) 
  pDC->DrawIcon(10,10,hIcon); 
 }

本文导航

MFC 总结 技巧

本文源自互联网,采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可,
版权归原作者,如有问题请联系service@tsingfun.com (编辑:admin)
分享到: