如何在MFC應用程序中獲取文件的圖標
創(chuàng)建基于對話框的MFC應用程序要在MFC應用程序中獲取文件的圖標,首先需要創(chuàng)建一個基于對話框的應用程序。我們以一個名為GetFileIcon的工程為例來演示。 設計對話框界面在對話框中添加三個按鈕、
創(chuàng)建基于對話框的MFC應用程序
要在MFC應用程序中獲取文件的圖標,首先需要創(chuàng)建一個基于對話框的應用程序。我們以一個名為GetFileIcon的工程為例來演示。
設計對話框界面
在對話框中添加三個按鈕、一個編輯框和一個靜態(tài)文本,其中“打開”按鈕將用于選擇文件,“獲取圖標”按鈕將用于獲取選定文件的圖標。
實現(xiàn)“打開”按鈕響應函數(shù)
為“打開”按鈕建立響應函數(shù)OnOpen(),在該函數(shù)中添加代碼來實現(xiàn)選擇文件并將文件路徑存儲起來。
```cpp
void CGetFileIconDlg::OnOpen()
{
CString strFilter "All Files(*.*)|*.*||";
CFileDialog dlg(TRUE, NULL, NULL, OFN_EXPLORER | OFN_HIDEREADONLY | OFN_ENABLESIZING | OFN_FILEMUSTEXIST, strFilter);
if (() IDOK)
{
m_filename ();
}
UpdateData(false);
}
```
實現(xiàn)“獲取圖標”按鈕響應函數(shù)
為“獲取圖標”按鈕建立響應函數(shù)OnGeticon(),在該函數(shù)中添加代碼來獲取選定文件的圖標并顯示在靜態(tài)控件上。
```cpp
void CGetFileIconDlg::OnGeticon()
{
UpdateData(true);
SHFILEINFO shfi;
memset(shfi, 0, sizeof(shfi));
SHGetFileInfo(m_filename, FILE_ATTRIBUTE_NORMAL, shfi, sizeof(SHFILEINFO), SHGFI_ICON);
CStatic *pStatic (CStatic*)GetDlgItem(IDC_STATIC1);
pStatic->ModifyStyle(0xF, SS_ICON|SS_CENTERIMAGE);
pStatic->SetIcon(shfi.hIcon);
}
```
運行程序并測試
運行程序后,點擊“打開”按鈕選擇一個文件,然后點擊“獲取圖標”按鈕,就可以看到所選文件的圖標顯示在靜態(tài)控件中。
通過以上步驟,您可以在MFC應用程序中輕松獲取指定文件的圖標,并實現(xiàn)簡單而實用的功能。