网站首页

家园论坛

老版论坛

家园博客

业界新闻

技术文档

下载中心

速查中心

图片中心

硬件资讯
上一篇:让你的软件界面更漂亮(四) 下一篇:让你的软件界面更漂亮(五)
让你的软件界面更漂亮(六)

来源: 作者: 添加日期:2007-10-31 15:13:45 点击次数:

e.添加成员变量 及并在构造函数中初始化

CFont* m_pFont;         //用于创建选择字体
BOOL m_bOverImage;      
BOOL m_bOverVedio;      
BOOL m_bOverMobile;
DEQUELVITEM m_DequeList; //用户信息链表
HICON m_hTailIconA;               //vido flag
HICON m_hTailIconB;          //mobil message flag
HICON m_hTailIconC;           
HBITMAP m_hBackBitmap;     //背景

f.添加部分成员函数

重载InsertItem函数,用于增加Item同时增加用户信息。

InsertItem(int nItem, LPCTSTR szItemText, int nImageIndex, LUSERITEM* UserInfo)
{
	DEQUELVITEM* pDeqListItem = &m_DequeList;
	if(UserInfo)
		pDeqListItem ->push_back(*UserInfo);
	nItem = CListCtrl::InsertItem(nItem,szItemText,nImageIndex);
	return nItem;
}

添加设置显示图标函数,A指定视频标志图标,B指定为短消息标志图标,C未定义

void CMyListCtrl::SetTailIcon(LPCTSTR strIconFileA,LPCTSTR strIconFileB,LPCTSTR strIconFileC)
{
   HICON hIcon=NULL;
   hIcon = (HICON)::LoadImage(NULL, strIconFileA, IMAGE_ICON, 0, 0, LR_DEFAULTSIZE|LR_LOADFROMFILE);
   if(hIcon)
   {
         if(m_hTailIconA)
               DeleteObject(m_hTailIconA);
         m_hTailIconA = hIcon;
    }

   hIcon = (HICON)::LoadImage(NULL, strIconFileB, IMAGE_ICON, 0, 0, LR_DEFAULTSIZE|LR_LOADFROMFILE);

   if(hIcon)
   {
         if(m_hTailIconB)
               DeleteObject(m_hTailIconB);

         m_hTailIconB = hIcon;
    }

   hIcon = (HICON)::LoadImage(NULL, strIconFileC, IMAGE_ICON, 0, 0, LR_DEFAULTSIZE|LR_LOADFROMFILE);

   if(hIcon)
   {
         if(m_hTailIconC)
               DeleteObject(m_hTailIconC);

         m_hTailIconC = hIcon;
   }
}

添加设背景位图函数SetBackBitmap

void CMyListCtrl::SetBackBitmap(LPCTSTR lpszResourceName)
{
   HBITMAP hBmp = (HBITMAP)::LoadImageFile(lpszResourceName);
   if(hBmp)
         m_hBackBitmap = hBmp;
}

添加删除用户信息函数

BOOL DeleteUserInfo(CString szText)
{
   BOOL bRet = FALSE;

   LUSERITEM itemInfo;
   DEQUELVITEM* pDeqItem = &m_DequeList;

   int nItemCount = -1;

   DEQUELVITEM::iterator it,itbegin = pDeqItem->begin(),itend = pDeqItem->end();
   for ( it = itbegin; it != itend; it++ )
   {
         nItemCount++;
         if(( it->szUserID == szText)||(it->szUserName == szText))
         {
               if ( nItemCount == ( pDeqItem->size() - 1 ) )
               {
                     //如果是最后一个

                     pDeqItem->pop_back();
               }
               else if ( nItemCount == 0 )
                     //如果是第一个
                     pDeqItem->pop_front();
               else
                     pDeqItem->erase( pDeqItem->begin() + nItemCount );

               bRet = TRUE;
          }
   }

   return bRet;
}

三、自绘代码全部在OnPaint()中实现 ,为了节省篇幅这里省略,请参考源码。

本新闻共3页,当前在第3页  1  2  3  

 
设为首页 | 加入收藏 | 业务办理 | 友情链接 | 论坛版面 | 浙ICP备07502118号 |