ListControl控制元件ICON模式

親愛的張小語發表於2017-07-30

新建一個MFC對話方塊,命名為Import


新增一個ListControl控制元件,ID設定為IDC_PROGRAM_LANG_LIST,屬性View設定為Icon  ,再新增一個按鈕。

在CImportDlg .h中新增一個成員變數
CImageList m_imageList; 



在BOOL CImportDlg::OnInitDialog()中

新增m_imageList.Create(80,80,ILC_COLOR24|ILC_MASK,1,0);//建立列表檢視視窗


新增按鈕點選事件

函式體修改為

void CImportDlg::OnBnClickedButton1()
{	
	// TODO: Add your control notification handler code here  
	//開啟檔案 定義四種格式的檔案bmp gif jpg tiff
	CString filter=L"所有檔案(*.bmp,*.jpg,*.gif,*tiff)|*.bmp;*.jpg;*.gif;*.tiff| BMP(*.bmp)|*.bmp| JPG(*.jpg)|*.jpg| GIF(*.gif)|*.gif| TIFF(*.tiff)|*.tiff||";
	CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,filter,NULL);          
	if( dlg.DoModal() == IDOK )
	{
		CString BmpName = dlg.GetFileName();
		CString  m_strfile= dlg.GetPathName();        
		CBitmap *pBitmap= new CBitmap;
		//從檔案匯入點陣圖
		HBITMAP hBitmap=(HBITMAP)LoadImage(AfxGetInstanceHandle(),m_strfile,IMAGE_BITMAP,80,80,LR_LOADFROMFILE);
		pBitmap->Attach(hBitmap);
		int index=m_imageList.Add(pBitmap, RGB(0,0,0));

		if (m_imageList.GetImageCount() == 0)
		{
			CString strMsg;
			strMsg.Format(L"匯入圖片失敗!%d", GetLastError());
			AfxMessageBox(strMsg);
		}

		CString name;
		name.Format(L"%s\n[%d×%d]",BmpName,80,80);
		m_programLangList.SetImageList(&m_imageList,LVSIL_NORMAL);
		m_programLangList.InsertItem(index,name,index);
	}
}

執行結果


程式連結

http://download.csdn.net/detail/zhangxiaoyu_sy/9914624

相關文章