⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 userlist.cpp

📁 此源码使用VC编写的一个聊天程序
💻 CPP
字号:
// UserList.cpp : implementation file
//

#include "stdafx.h"
#include "UserList.h"

#include "Client.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CUserList

CUserList::CUserList()
{

}

CUserList::~CUserList()
{
}

BEGIN_MESSAGE_MAP(CUserList, CListCtrl)
	//{{AFX_MSG_MAP(CUserList)
	ON_WM_CREATE()
	ON_NOTIFY_REFLECT(NM_DBLCLK, OnDblclk)
	ON_WM_LBUTTONDBLCLK()
	ON_WM_RBUTTONDOWN()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CUserList message handlers
int CUserList::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CListCtrl::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	//m_imgList.Create(IDB_IMAGE, 16, 1, RGB(0, 255, 0));
	//HIMAGELIST him = m_imgList.m_hImageList;
	//::SendMessage(this->m_hWnd,LVM_SETIMAGELIST,(WPARAM)LVSIL_SMALL,(LPARAM)him);
	//ImageList_SetBkColor(him,CLR_NONE);

	return 0;
}

void CUserList::AddItem(short i, char* Name, char* Text)
{
	LVITEM			lvi;

	lvi.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM;
	lvi.iItem = GetItemCount();
    //lvi.iImage = i;
	lvi.iSubItem = 0;
	lvi.pszText = Name;
	lvi.cchTextMax = 64;
	lvi.lParam = 0;
	InsertItem(&lvi);

	lvi.mask = LVIF_TEXT;
	lvi.pszText = Text;
	lvi.cchTextMax = 32;
	lvi.iSubItem = 1;
	SetItem(&lvi);
}

void CUserList::OnDblclk(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;

	CString str;
	int iSel = pNMListView->iItem;
	if (iSel >= 0 ){
		str = GetItemText(iSel,0);
		CWnd* pParentWnd = GetParent();
		if (pParentWnd != NULL)
	       pParentWnd->SendMessage(WM_DBCLICKITEM, 0, (LPARAM)&str);
	}
	*pResult = 0;
}

void CUserList::Remove(char *Name)
{
	CString m_strName;
	for(int i = 0; i < GetItemCount(); i++){
		m_strName = GetItemText(i,0);
		if(strcmp(m_strName, Name) == 0){
			DeleteItem(i);
			break;
		}
	}
}

void CUserList::OnLButtonDblClk(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	
	CListCtrl::OnLButtonDblClk(nFlags, point);
}

void CUserList::OnRButtonDown(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	/*
	CClientApp* app = (CClientApp*)AfxGetApp();
	HMENU hmenu = LoadMenu(AfxGetApp()->m_hInstance,MAKEINTRESOURCE(IDR_POPUP));
	HMENU hpopup = GetSubMenu(hmenu, 0);
	switch (TrackPopupMenu(hpopup,            // Popup menu to track
		TPM_RETURNCMD |    // Return menu code
		TPM_RIGHTBUTTON,   // Track right mouse button?
		point.x, point.y,        // screen coordinates
		0,                 // reserved
		this->m_hWnd,            // owner
		NULL))             // LPRECT user can click in
			// without dismissing menu
		{
		case ID_SENDMSG: 
			SendNotifyMessage(NM_DBLCLK,0,0);
			break;
		}
	*/
	CListCtrl::OnRButtonDown(nFlags, point);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -