BOOL CShowDlg::OnInitDialog()
{
CDialog::OnInitDialog();
       略; PostMessage(WM_MEASUREITEM,IDC_SHOW);

return TRUE;  // return TRUE  unless you set the focus to a control
}void CShowDlg::OnDropFiles(HDROP hDropInfo)
{
//获取已经有的图标个数
int count=((CListBox*)GetDlgItem(IDC_SHOW))->GetCount();
    ((CListBox*)GetDlgItem(IDC_SHOW))->SetItemHeight(count-1,30);  char szFile[MAX_PATH];
::DragQueryFile (hDropInfo, 0, szFile, sizeof (szFile));
HICON hIcon;
if(hIcon = ::ExtractIcon (AfxGetInstanceHandle (),
                    szFile, 1))
{
  //放置到下一个里
       ((CListBox*)GetDlgItem(IDC_SHOW))->SetItemData(count,(DWORD)hIcon);
}}void CShowDlg::OnRButtonDown(UINT nFlags, CPoint point) 
{
// TODO: Add your message handler code here and/or call default
CRect rect;
((CWnd*)GetDlgItem(IDC_SHOW))->GetWindowRect(&rect);
    ScreenToClient(rect);
 if(rect.PtInRect(point))
{
    ClientToScreen(&point);
       
        CMenu menu;
menu.CreatePopupMenu();
menu.AppendMenu(MF_STRING,ID_DES,"删除此图标");
menu.TrackPopupMenu(TPM_RIGHTBUTTON,point.x,point.y,this);
} CDialog::OnRButtonDown(nFlags, point);
}void CShowDlg::OnMeasureItem( int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct )
{
  lpMeasureItemStruct->itemWidth=30;}