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

📄 leftview.cpp

📁 三汇CTI示例程序源码
💻 CPP
字号:

#include "StdAfx.h"
#include "Resource.h"
#include "App.h"
#include "LeftView.h"
#include "MainFrame.h"

IMPLEMENT_DYNCREATE(LeftView, CListView)

BEGIN_MESSAGE_MAP(LeftView, CListView)
	ON_WM_TIMER()
	ON_WM_RBUTTONUP()
	ON_WM_LBUTTONDOWN()
	ON_WM_RBUTTONDOWN()
END_MESSAGE_MAP()

LeftView::LeftView()
{
	IsInitialUpdate = FALSE;
}

BOOL LeftView::PreCreateWindow(CREATESTRUCT& cs) 
{
	CListView::PreCreateWindow(cs);

	cs.style &= ~LVS_TYPEMASK;
	cs.style |= LVS_REPORT | LVS_SORTASCENDING | LVS_SINGLESEL | LVS_SHOWSELALWAYS;

	return TRUE;
}

enum
{
	CONF_ID_COLUMN,
	CONF_MEMBERS_COLUMN,
	CONF_SPEAKERS_COLUMN,
	CONF_IN_SPEAKING_COLUMN,
	CONF_N_COLUMNS
};

void LeftView::OnInitialUpdate()
{
	if (IsInitialUpdate == FALSE)
	{
		CListCtrl& ListCtrl = GetListCtrl();
		_TCHAR *ColumnLabel[CONF_N_COLUMNS] =
		{
			_T("ID"),
			_T("Members"),
			_T("Speakers"),
			_T("In speaking")
		};
		int i;

		ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT);

		for(i = 0; i < CONF_N_COLUMNS; i++)
		{
			ListCtrl.InsertColumn(i, ColumnLabel[i], LVCFMT_LEFT, 100);
		}

		SetTimer(0, 500, NULL);

		IsInitialUpdate = TRUE;
	}

}

void LeftView::OnTimer(UINT nIDEvent)
{
	CListCtrl& ListCtrl = GetListCtrl();
	LVFINDINFO item_find;
	int active;
	char str[10] = "";
	int i;

	if (nIDEvent == 0)
	{
		// Retrieve selection

		for (i = 0; i < ListCtrl.GetItemCount(); i++)
		{
			if (ListCtrl.GetItemState(i, LVIS_SELECTED))
				ListCtrl.GetItemText(i, 0, str, 10);
		}
		if (strlen(str) > 0)
		{
			conf_active = atoi(str);
		}
		else
		{
			conf_active = -1;
		}

		// Refresh

		ListCtrl.DeleteAllItems();
		WORD TotalMember, TotalSpeaker, TotalSpeaking;
		char temp[10];
		int index;
		int * conf = (int *)malloc(sizeof(int) * SsmGetTotalConfGroup());
		SsmGetConfGrpId(conf);
		for (i = 0; i < SsmGetTotalConfGroup(); i++)
		{
			SsmGetConfGrpInfo(conf[i], &TotalMember, &TotalSpeaker, &TotalSpeaking);
			index = ListCtrl.InsertItem(0, itoa(conf[i], temp, 10), IDI_ICON_CONFERENCE);
			ListCtrl.SetItemText(index, 1, itoa(TotalMember, temp, 10));
			ListCtrl.SetItemText(index, 2, itoa(TotalSpeaker, temp, 10));
			ListCtrl.SetItemText(index, 3, itoa(TotalSpeaking, temp, 10));
		}


		// Restore selection

		item_find.flags = LVFI_STRING;
		item_find.psz = str;
		active = ListCtrl.FindItem(&item_find);
		if (active < 0)
			active = 0;
		if (ListCtrl.GetItemCount() >= 0)
			ListCtrl.SetItemState(active, LVIS_SELECTED, LVIS_SELECTED);
	}
}

void LeftView::OnRButtonUp(UINT nFlags, CPoint point)
{
	CListCtrl& ListCtrl = GetListCtrl();
	CMenu menu;
	CPoint point_screen;

	GetCursorPos(&point_screen);
	menu.LoadMenu(IDR_MENU_CONF);
	menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN, point_screen.x , point_screen.y, &ListCtrl);
}

void LeftView::OnRButtonDown(UINT nFlags, CPoint point)
{
	int index;
	PostMessage(WM_TIMER);
	CListCtrl& ListCtrl = GetListCtrl();
	if ((index = ListCtrl.HitTest(point)) >= 0)
		ListCtrl.SetItemState(index, LVIS_SELECTED, LVIS_SELECTED);
	else if(ListCtrl.GetItemCount() > 0)
		ListCtrl.SetItemState(ListCtrl.GetItemCount() - 1, LVIS_SELECTED, LVIS_SELECTED);
}

void LeftView::OnLButtonDown(UINT nFlags, CPoint point)
{
	int index;
	PostMessage(WM_TIMER);
	CListCtrl& ListCtrl = GetListCtrl();
	if ((index = ListCtrl.HitTest(point)) >= 0)
		ListCtrl.SetItemState(index, LVIS_SELECTED, LVIS_SELECTED);
	else if(ListCtrl.GetItemCount() > 0)
		ListCtrl.SetItemState(ListCtrl.GetItemCount() - 1, LVIS_SELECTED, LVIS_SELECTED);
}


BOOL LeftView::OnCommand(WPARAM wParam, LPARAM lParam)
{

	int master_ch = get_master(conf_active);

	if (master_ch >= 0)
	{
		switch(wParam)
		{
			case ID_TOGGLEBACKGROUDSOUND:
				channels[master_ch].BgSoundEnabled = !channels[master_ch].BgSoundEnabled;
				break;
			case ID_CONTENTMENU_BACKGROUDSOUNDVOLUME_6A:
				channels[master_ch].BgSoundVolume = 6;
				break;
			case ID_CONTENTMENU_BACKGROUDSOUNDVOLUME_5A:
				channels[master_ch].BgSoundVolume = 5;
				break;
			case ID_CONTENTMENU_BACKGROUDSOUNDVOLUME_4A:
				channels[master_ch].BgSoundVolume = 4;
				break;
			case ID_CONTENTMENU_BACKGROUDSOUNDVOLUME_3A:
				channels[master_ch].BgSoundVolume = 3;
				break;
			case ID_CONTENTMENU_BACKGROUDSOUNDVOLUME_2A:
				channels[master_ch].BgSoundVolume = 2;
				break;
			case ID_CONTENTMENU_BACKGROUDSOUNDVOLUME_1A:
				channels[master_ch].BgSoundVolume = 1;
				break;
			case ID_CONTENTMENU_BACKGROUDSOUNDVOLUME_0:
				channels[master_ch].BgSoundVolume = 0;
				break;
			case ID_CONTENTMENU_BACKGROUDSOUNDVOLUME_1B:
				channels[master_ch].BgSoundVolume = -1;
				break;
			case ID_CONTENTMENU_BACKGROUDSOUNDVOLUME_2B:
				channels[master_ch].BgSoundVolume = -2;
				break;
			case ID_CONTENTMENU_BACKGROUDSOUNDVOLUME_3B:
				channels[master_ch].BgSoundVolume = -3;
				break;
			case ID_CONTENTMENU_BACKGROUDSOUNDVOLUME_4B:
				channels[master_ch].BgSoundVolume = -4;
				break;
			case ID_CONTENTMENU_BACKGROUDSOUNDVOLUME_5B:
				channels[master_ch].BgSoundVolume = -5;
				break;
			case ID_CONTENTMENU_BACKGROUDSOUNDVOLUME_6B:
				channels[master_ch].BgSoundVolume = -6;
				break;
		}
	}
	return TRUE;
}

⌨️ 快捷键说明

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