Example #1
0
//更新信息
bool CUserCompanionList::UpdateCompanionInfo(HTREEITEM hTreeItem, tagCompanionItem * pCompanionInfo)
{
	//效验参数
	ASSERT(hTreeItem!=NULL);
	if (hTreeItem==NULL) return false;

	//更新处理
	if (GetTreeItemCompanion(hTreeItem)==pCompanionInfo->Companion)
	{
		//生成标题
		TCHAR szTreeTitle[128]=TEXT("");
		_sntprintf(szTreeTitle,CountArray(szTreeTitle),TEXT("%s [ %ld ]"),pCompanionInfo->szAccounts,pCompanionInfo->dwGameID);

		//更新树项
		SetItemText(hTreeItem,szTreeTitle);
	}
	else
	{
		//删除树项
		DeleteItem(hTreeItem);
		InsertCompanionInfo(pCompanionInfo);
	}
	
	return true;
}
Example #2
0
//插入通知
bool __cdecl CUserCompanionList::OnCompanionInsert(tagCompanionItem * pCompanionInfo)
{
	//获取树项
	ASSERT(pCompanionInfo!=NULL);
	HTREEITEM hTreeItem=SearchCompanionInfo(NULL,pCompanionInfo);

	//事件处理
	if (hTreeItem==NULL) InsertCompanionInfo(pCompanionInfo);
	else UpdateCompanionInfo(hTreeItem,pCompanionInfo);

	return true;
}
Example #3
0
//创建消息
INT CUserCompanionList::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (__super::OnCreate(lpCreateStruct)==-1) return -1;

	//设置控件
	SetItemHeight(20);
	SetTextColor(RGB(0,0,0));
	SetBkColor(RGB(230,249,255));
	ModifyStyle(0,TVS_HASBUTTONS|TVS_HASLINES|TVS_SHOWSELALWAYS|TVS_TRACKSELECT);
	SendMessage(WN_SET_LINE_COLOR,0,(LPARAM)RGB(72,79,63));

	//加载图片
	if (m_ImageCompanionList.GetSafeHandle()==NULL)
	{
		CBitmap ServerImage;
		ServerImage.LoadBitmap(IDB_SERVER_LIST_IMAGE);
		m_ImageCompanionList.Create(18,18,ILC_COLOR16|ILC_MASK,0,0);
		m_ImageCompanionList.Add(&ServerImage,RGB(255,0,255));
		SetImageList(&m_ImageCompanionList,LVSIL_NORMAL);
	}

	//设置列表
	m_hItemRoot=InsertItem(TEXT("好友管理"),0,0);
	m_hItemFriend=InsertItem(TEXT("游戏好友"),IMAGE_FRIEND,IMAGE_FRIEND,m_hItemRoot);
	m_hItemDetest=InsertItem(TEXT("黑名单"),IMAGE_DETEST,IMAGE_DETEST,m_hItemRoot);
	m_hItemNormal=InsertItem(TEXT("陌生人"),IMAGE_NORMAL,IMAGE_NORMAL,m_hItemRoot);

	//加载列表
	WORD wIndex=0;
	do
	{
		//获取关系
		const tagCompanionItem * pCompanionInfo=g_GlobalUnits.m_CompanionManager->EmunCompanionItem(wIndex++);
 
		//终止判断
		if (pCompanionInfo==NULL) break;

		//过虑本身
		if(g_GlobalUnits.GetGolbalUserData().dwUserID==pCompanionInfo->dwUserID)continue;

		//插入子项
		InsertCompanionInfo(pCompanionInfo);

	} while (true);

	//展开列表
	Expand(m_hItemRoot,TVE_EXPAND);
	Expand(m_hItemFriend,TVE_EXPAND);

	return 0;
}
Example #4
0
//更新通知
bool __cdecl CUserCompanionList::OnCompanionUpdate(tagCompanionItem * pCompanionInfo)
{
    //获取树项
    ASSERT(pCompanionInfo!=NULL);
    HTREEITEM hTreeItem=SearchCompanionInfo(NULL,pCompanionInfo);

    //事件处理
    if (hTreeItem==NULL) InsertCompanionInfo(pCompanionInfo);
    else
    {
        tagCompanionItem * pCurrCompanion=(tagCompanionItem *)GetItemData(hTreeItem);
        UpdateCompanionInfo(hTreeItem,pCompanionInfo);
    }

    //更新界面
    Invalidate(FALSE);
    UpdateWindow();

    return true;
}