如何在VC++程序中獲得其他程序的圖標
如何在VC 程序中獲取其他程序的圖標?可以採用兩種方法:
(1) SDK函數SHGetFileInfo或者ExtractIcon獲取圖標資源的句柄,
(2) SDK函數SHGetFileInfo獲取文件的很多信息,比如大小圖標,屬性,類型等。
例(1):記事本圖標顯示在程序窗口的左上角。
Void C sample view:ONDRAW(CDC * PDC)
{
If(::shgetFileInfo(_ t(" C:\ \ PWIN)notepad . exe),0,
&stFileInfo,sizeof(stFileInfo),SHGFI _ ICON))
{
PDC-> draw ICON(10,10,stFileInfo . hicon);
}
}
例(2):同一個函數,使用ExtractIcon函數。
void CSampleView::OnDraw(CDC * pDC)
{
HICON HICON =::extract icon(AfxGetInstanceHandle(),_T
("NotePad.exe"),0);
if (hIcon &&hIcon!=(HICON)-1)
pDC-> draw icon(10,10,HICON);
}
注意:獲取notepad.exe的路逕是通過使用GetWindowsDirectory函數正式獲得的。如果調用win95下的畫筆,應該通過訪問注冊表獲取路逕。做一個更優雅的節目,要綜郃考慮。
0條評論