亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sounddlg.cpp

?? 這是一個控制程序
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
// soundDlg.cpp : implementation file

//本系統通過一個單片機然后與64個子機相連,系統的通訊主要是針對
//這個單片機,因為主機與64個子機間的通訊完全以單片機為中介。
//注意:該系統中老師端也是一個子機,故相當于共有65個子機。

//命令幀格式: 幀長度;命令類型;【子機1】;【子機2】;校驗位

//接收幀格式:
//1、單片機響應:	幀長度(3);單片機響應命令(確認或要求重發);校驗和
//2、子機呼叫:		幀長度(3);機號;校驗和
//3、測驗項數據:	幀長度(68);老師的子機號(0x60,作為命令的標志);對某題的所選答案(學生加老師,65項,其中最后記錄老師的答案);校驗和
 

#include "stdafx.h"
#include "sound.h"
#include "soundDlg.h"
#include "GradeDlg.h"

//為常量賦一個有意義的名字
#define comEvReceive  2
#define comInputModeBinary 1

unsigned char TxData[50];	//發送的數據,發送幀定義:第一項為發送的字節數;然后是命令幀(1~2個);最后是校驗和。
//TxData[1],從1~7對應組合框的七種選擇;8、9對應音量的控制;10表確認;1f表要求重發。
//補充:TxDate[1]為11(即0x0b)時表示組合框的第八種選擇。

unsigned char RcvData[50];	//將所接收的數據寫入該字符串,格式為接收幀格式
//RcvData[1]基本上對應TxData[1]的一些取值,另外,ff對應學生(即單片機處)要求重發;0f對應確認
//RcvData[1]對應單片機發來的數據幀中的命令類型

unsigned char Student[2];	//定義該變量的目的是點對點通訊時,指明學生接收對象。此處表明最多涉及兩位學生。
static int PointStu=0;		//使用此指針,防止重復選擇學生
static int SavePoint=0;
static int Test=0;			//此標志用于測試功能中的判斷
static int n_Key=0;
static int Score[65][65];	//記錄分數
static int Grade[64];		//記錄成績,用于計算Score[65][65]對應的累加和。
//CString szCall="";
CFont NewFont;
CFont* pOldFont;
CButton *pCallButton=NULL;



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

/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About

class CAboutDlg : public CDialog
{
public:
	CAboutDlg();
	
	// Dialog Data
	//{{AFX_DATA(CAboutDlg)
	enum { IDD = IDD_ABOUTBOX };
	//}}AFX_DATA
	
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CAboutDlg)
protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL
	
	// Implementation
protected:
	//{{AFX_MSG(CAboutDlg)
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
	//{{AFX_DATA_INIT(CAboutDlg)
	//}}AFX_DATA_INIT
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAboutDlg)
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// No message handlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSoundDlg dialog

CSoundDlg::CSoundDlg(CWnd* pParent /*=NULL*/)
: CDialog(CSoundDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CSoundDlg)
	m_Text = _T("");
	m_Call = _T("");
	m_Discrip = _T("");
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CSoundDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CSoundDlg)
	DDX_Control(pDX, IDC_H8, m_H8);
	DDX_Control(pDX, IDC_H7, m_H7);
	DDX_Control(pDX, IDC_H6, m_H6);
	DDX_Control(pDX, IDC_H5, m_H5);
	DDX_Control(pDX, IDC_H4, m_H4);
	DDX_Control(pDX, IDC_H3, m_H3);
	DDX_Control(pDX, IDC_H2, m_H2);
	DDX_Control(pDX, IDC_H1, m_H1);
	DDX_Control(pDX, IDC_G8, m_G8);
	DDX_Control(pDX, IDC_G7, m_G7);
	DDX_Control(pDX, IDC_G6, m_G6);
	DDX_Control(pDX, IDC_G5, m_G5);
	DDX_Control(pDX, IDC_G4, m_G4);
	DDX_Control(pDX, IDC_G3, m_G3);
	DDX_Control(pDX, IDC_G2, m_G2);
	DDX_Control(pDX, IDC_G1, m_G1);
	DDX_Control(pDX, IDC_F8, m_F8);
	DDX_Control(pDX, IDC_F7, m_F7);
	DDX_Control(pDX, IDC_F6, m_F6);
	DDX_Control(pDX, IDC_F5, m_F5);
	DDX_Control(pDX, IDC_F4, m_F4);
	DDX_Control(pDX, IDC_F3, m_F3);
	DDX_Control(pDX, IDC_F2, m_F2);
	DDX_Control(pDX, IDC_F1, m_F1);
	DDX_Control(pDX, IDC_E8, m_E8);
	DDX_Control(pDX, IDC_E7, m_E7);
	DDX_Control(pDX, IDC_E6, m_E6);
	DDX_Control(pDX, IDC_E5, m_E5);
	DDX_Control(pDX, IDC_E4, m_E4);
	DDX_Control(pDX, IDC_E3, m_E3);
	DDX_Control(pDX, IDC_E2, m_E2);
	DDX_Control(pDX, IDC_E1, m_E1);
	DDX_Control(pDX, IDC_D8, m_D8);
	DDX_Control(pDX, IDC_D7, m_D7);
	DDX_Control(pDX, IDC_D6, m_D6);
	DDX_Control(pDX, IDC_D5, m_D5);
	DDX_Control(pDX, IDC_D4, m_D4);
	DDX_Control(pDX, IDC_D3, m_D3);
	DDX_Control(pDX, IDC_D2, m_D2);
	DDX_Control(pDX, IDC_D1, m_D1);
	DDX_Control(pDX, IDC_C8, m_C8);
	DDX_Control(pDX, IDC_C7, m_C7);
	DDX_Control(pDX, IDC_C6, m_C6);
	DDX_Control(pDX, IDC_C5, m_C5);
	DDX_Control(pDX, IDC_C4, m_C4);
	DDX_Control(pDX, IDC_C3, m_C3);
	DDX_Control(pDX, IDC_C2, m_C2);
	DDX_Control(pDX, IDC_C1, m_C1);
	DDX_Control(pDX, IDC_B8, m_B8);
	DDX_Control(pDX, IDC_B7, m_B7);
	DDX_Control(pDX, IDC_B6, m_B6);
	DDX_Control(pDX, IDC_B5, m_B5);
	DDX_Control(pDX, IDC_B4, m_B4);
	DDX_Control(pDX, IDC_B3, m_B3);
	DDX_Control(pDX, IDC_B2, m_B2);
	DDX_Control(pDX, IDC_B1, m_B1);
	DDX_Control(pDX, IDC_A8, m_A8);
	DDX_Control(pDX, IDC_A7, m_A7);
	DDX_Control(pDX, IDC_A6, m_A6);
	DDX_Control(pDX, IDC_A5, m_A5);
	DDX_Control(pDX, IDC_A4, m_A4);
	DDX_Control(pDX, IDC_A3, m_A3);
	DDX_Control(pDX, IDC_A2, m_A2);
	DDX_Control(pDX, IDC_A1, m_A1);
	DDX_Control(pDX, IDC_COMBO1, m_Combo);
	DDX_Text(pDX, IDC_TEXT, m_Text);
	DDX_Control(pDX, IDC_MSCOMM, m_ComPort);
	DDX_Text(pDX, IDC_CALL, m_Call);
	DDX_Text(pDX, IDC_DISCRIP, m_Discrip);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CSoundDlg, CDialog)
//{{AFX_MSG_MAP(CSoundDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_CBN_SELCHANGE(IDC_COMBO1, OnSelchangeCombo1)
ON_BN_CLICKED(IDC_SEND, OnSend)
ON_BN_CLICKED(IDC_A1, OnA1)
ON_BN_CLICKED(IDC_A2, OnA2)
ON_BN_CLICKED(IDC_A3, OnA3)
ON_BN_CLICKED(IDC_A4, OnA4)
ON_BN_CLICKED(IDC_A5, OnA5)
ON_BN_CLICKED(IDC_A6, OnA6)
ON_BN_CLICKED(IDC_A7, OnA7)
ON_BN_CLICKED(IDC_A8, OnA8)
ON_BN_CLICKED(IDC_B1, OnB1)
ON_BN_CLICKED(IDC_B2, OnB2)
ON_BN_CLICKED(IDC_B3, OnB3)
ON_BN_CLICKED(IDC_B4, OnB4)
ON_BN_CLICKED(IDC_B5, OnB5)
ON_BN_CLICKED(IDC_B6, OnB6)
ON_BN_CLICKED(IDC_B7, OnB7)
ON_BN_CLICKED(IDC_B8, OnB8)
ON_BN_CLICKED(IDC_C1, OnC1)
ON_BN_CLICKED(IDC_C2, OnC2)
ON_BN_CLICKED(IDC_C3, OnC3)
ON_BN_CLICKED(IDC_C4, OnC4)
ON_BN_CLICKED(IDC_C5, OnC5)
ON_BN_CLICKED(IDC_C6, OnC6)
ON_BN_CLICKED(IDC_C7, OnC7)
ON_BN_CLICKED(IDC_C8, OnC8)
ON_BN_CLICKED(IDC_D1, OnD1)
ON_BN_CLICKED(IDC_D2, OnD2)
ON_BN_CLICKED(IDC_D3, OnD3)
ON_BN_CLICKED(IDC_D4, OnD4)
ON_BN_CLICKED(IDC_D5, OnD5)
ON_BN_CLICKED(IDC_D6, OnD6)
ON_BN_CLICKED(IDC_D7, OnD7)
ON_BN_CLICKED(IDC_D8, OnD8)
ON_BN_CLICKED(IDC_E1, OnE1)
ON_BN_CLICKED(IDC_E2, OnE2)
ON_BN_CLICKED(IDC_E3, OnE3)
ON_BN_CLICKED(IDC_E4, OnE4)
ON_BN_CLICKED(IDC_E5, OnE5)
ON_BN_CLICKED(IDC_E6, OnE6)
ON_BN_CLICKED(IDC_E7, OnE7)
ON_BN_CLICKED(IDC_E8, OnE8)
ON_BN_CLICKED(IDC_F1, OnF1)
ON_BN_CLICKED(IDC_F2, OnF2)
ON_BN_CLICKED(IDC_F3, OnF3)
ON_BN_CLICKED(IDC_F4, OnF4)
ON_BN_CLICKED(IDC_F5, OnF5)
ON_BN_CLICKED(IDC_F6, OnF6)
ON_BN_CLICKED(IDC_F7, OnF7)
ON_BN_CLICKED(IDC_F8, OnF8)
ON_BN_CLICKED(IDC_G1, OnG1)
ON_BN_CLICKED(IDC_G2, OnG2)
ON_BN_CLICKED(IDC_G3, OnG3)
ON_BN_CLICKED(IDC_G4, OnG4)
ON_BN_CLICKED(IDC_G5, OnG5)
ON_BN_CLICKED(IDC_G6, OnG6)
ON_BN_CLICKED(IDC_G7, OnG7)
ON_BN_CLICKED(IDC_G8, OnG8)
ON_BN_CLICKED(IDC_H1, OnH1)
ON_BN_CLICKED(IDC_H2, OnH2)
ON_BN_CLICKED(IDC_H4, OnH4)
ON_BN_CLICKED(IDC_H3, OnH3)
ON_BN_CLICKED(IDC_H5, OnH5)
ON_BN_CLICKED(IDC_H6, OnH6)
ON_BN_CLICKED(IDC_H7, OnH7)
ON_BN_CLICKED(IDC_H8, OnH8)
ON_BN_CLICKED(IDC_ADD, OnAdd)
ON_BN_CLICKED(IDC_DEC, OnDec)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSoundDlg message handlers

BOOL CSoundDlg::OnInitDialog()
{
	CDialog::OnInitDialog();
	
	// Add "About..." menu item to system menu.
	
	// IDM_ABOUTBOX must be in the system command range.
	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
	ASSERT(IDM_ABOUTBOX < 0xF000);
	
	CMenu* pSysMenu = GetSystemMenu(FALSE);
	if (pSysMenu != NULL)
	{
		CString strAboutMenu;
		strAboutMenu.LoadString(IDS_ABOUTBOX);
		if (!strAboutMenu.IsEmpty())
		{
			pSysMenu->AppendMenu(MF_SEPARATOR);
			pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
		}
	}
	
	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	
	// TODO: Add extra initialization here
	for(int iii=0;iii<2;iii++)
		Student[iii]=0x00;//把Student的元素都賦初值為零
	m_Combo.SetCurSel(0);
	m_Combo.GetLBText(m_Combo.GetCurSel(),m_Text);
	m_Discrip="老師講課,所有同學都能聽到。若要切換為此功能,只需按“確認執行”按鍵。此功能為默認功能。";
	UpdateData(false);
	
	
	m_ComPort.SetCommPort(2);
	if(!m_ComPort.GetPortOpen())
		m_ComPort.SetPortOpen(TRUE);
	m_ComPort.SetInputMode(comInputModeBinary);
	m_ComPort.SetSettings("9600,n,8,1");
	m_ComPort.SetRThreshold(1);
	m_ComPort.SetInputLen(0);
    m_ComPort.GetInput();
	
	pOldFont=m_A1.GetFont();//返回已存在的字體指針,以備后用
	
	//創建新字體
	NewFont.CreateFont(
		20,                        // nHeight
		0,                         // nWidth
		0,                         // nEscapement
		0,                         // nOrientation
		FW_BOLD,                 // nWeight
		FALSE,                     // bItalic
		FALSE,                     // bUnderline
		0,                         // cStrikeOut
		ANSI_CHARSET,              // nCharSet
		OUT_DEFAULT_PRECIS,        // nOutPrecision
		CLIP_DEFAULT_PRECIS,       // nClipPrecision
		DEFAULT_QUALITY,           // nQuality
		DEFAULT_PITCH | FF_SWISS,  // nPitchAndFamily
		"Arial");                 // lpszFacename
	
	//	OnSend();
	
	return TRUE;  // return TRUE  unless you set the focus to a control
}

void CSoundDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
	if ((nID & 0xFFF0) == IDM_ABOUTBOX)
	{
		CAboutDlg dlgAbout;
		dlgAbout.DoModal();
	}
	else
	{
		CDialog::OnSysCommand(nID, lParam);
	}
}

// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.

void CSoundDlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // device context for painting
		
		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
		
		// Center icon in client rectangle
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;
		
		// Draw the icon
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialog::OnPaint();
	}
}

// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CSoundDlg::OnQueryDragIcon()
{
	return (HCURSOR) m_hIcon;
}

void CSoundDlg::OnSelchangeCombo1() 
{
	// TODO: Add your control notification handler code here
	int nIndex=m_Combo.GetCurSel();
	m_Combo.GetLBText(nIndex,m_Text);//把列表框中第nIndex項,寫到m_Text中
	switch(nIndex)
	{
	case 0:m_Discrip="老師講課,所有同學都能聽到。若要切換為此功能,只需按“確認執行”按鍵。此功能為默認功能。";break;
	case 1:m_Discrip="老師與某一同學單獨通話。若要切換為此功能,需點取同學按鍵(以最后一次為準),然后按“確認執行”按鍵。";break;
	case 2:m_Discrip="放錄音1,老師、同學均可聽到。若要切換為此功能,只需按“確認執行”按鍵。";break;
	case 3:m_Discrip="放錄音2,老師、同學均可聽到。若要切換為此功能,只需按“確認執行”按鍵。";break;
	case 4:m_Discrip="某兩位同學之間單獨通話。若要切換為此功能,需點取同學按鍵(依次點取兩位同學的按鍵,若點取第三人,則認為前兩次作廢,重新開始選取),然后按“確認執行”按鍵。";break;
	case 5:m_Discrip="每一行的同學各自討論。若要切換為此功能,只需按“確認執行”按鍵。";break;
	case 6:m_Discrip="每一列的同學各自討論。若要切換為此功能,只需按“確認執行”按鍵。";break;
	case 7:m_Discrip="測驗時,請注意及時輸入選擇。測驗結束后,按“結束測驗”進行判分。最大試題數請不要超過30";
	}
	ClearFont();
	Student[0]=0x00;Student[1]=0x00;PointStu=0;
	UpdateData(false);
}

void CSoundDlg::OnSend() 
{
	// TODO: Add your control notification handler code here
	int nIndex;
	nIndex=m_Combo.GetCurSel();	//返回列表當前所選項的索引
	
	
	
	switch(nIndex)
	{
	case 0://case語句只起標號作用,程序將執行符合判斷的語句
		   //下面的所有命令。故需用break跳出switch結構
		{	
			//當nIndex==0
			TxData[0]=0x03;//表發送幀的長度為3,此為十六進制表示
			TxData[1]=0x01;//表發送幀的命令幀為1
			Transmitt();
			//發送命令后,禁止組合框再次使用,
			//直至接到返回命令后在ProcessData()中復原。
			m_Combo.EnableWindow (FALSE);
			break;//使用break跳出switch結構,還可以跳出循環體。
		}
	case 1:
		{
			TxData[0]=0x04;
			TxData[1]=0x02;
			if(Student[0]==0x00)
			{
				MessageBox("操作有誤!","提示");//第一項為提示內容,第二項為對話框標題。
				break;
			}
			TxData[2]=Student[0];
			Transmitt();
			m_Combo.EnableWindow (FALSE);
			break;
		}
	case 2:
		{
			TxData[0]=0x03;
			TxData[1]=0x03;
			Transmitt();
			m_Combo.EnableWindow (FALSE);
			break;
		}	
		
	case 3:
		{
			TxData[0]=0x03;
			TxData[1]=0x04;
			Transmitt();
			m_Combo.EnableWindow (FALSE);
			break;
		}
	case 4:
		{	//該情況為兩學生間通話,幀長度為5,命令類型為5,
			//然后是兩個學生ID,發送時再設置校驗和項。
			//故,供5個字節。		
			TxData[0]=0x05;
			TxData[1]=0x05;
			if(Student[0]==0x00||Student[1]==0x00)
			{
				MessageBox("操作有誤!","提示");
				break;
			}
			TxData[2]=Student[0];
			TxData[3]=Student[1];
			Transmitt();
			m_Combo.EnableWindow (FALSE);
			break;
		}
		
	case 5:
		{
			TxData[0]=0x03;
			TxData[1]=0x06;
			Transmitt();
			m_Combo.EnableWindow (FALSE);
			break;
		}
	case 6:
		{
			TxData[0]=0x03;
			TxData[1]=0x07;
			Transmitt();
			m_Combo.EnableWindow (FALSE);
			break;
		}
	case 7:
		{
			TxData[0]=0x03;
			TxData[1]=0x0b;
			Transmitt();
//此操作中,用變量Test標記測驗的開始與結束。
			if(Test==0)//注意此時使用邏輯等于
			{
			m_Combo.EnableWindow (FALSE);
			GetDlgItem(IDC_SEND)->SetWindowText(_T("結束測驗"));
			Test=1;
			}
			else//評分并顯示成績
			{
			GetDlgItem(IDC_SEND)->SetWindowText(_T("確認執行"));
			m_Combo.EnableWindow (TRUE);
			Test=0;

/////////////////////////////////////////////////////////////
//評分程序

			//下面這5行程序是給Score賦值,從而檢驗評分功能
//			for(int n_Person=0;n_Person<=63;n_Person++)
//			{
//			for(n_Key=0;n_Key<=30;n_Key++)//設試題數不超過30
//				Score[n_Person][n_Key]=1;
//			}

			for(int n_Person=0;n_Person<=63;n_Person++)
			{
			for(n_Key=0;n_Key<=30;n_Key++)//設試題數不超過30
				Grade[n_Person]+=Score[n_Person][n_Key];
			}
				
			//彈出對話框,顯示成績
			GradeDlg NewDlg;
			for(int h=0;h<=63;h++)
				NewDlg.DataNew[h]=Grade[h];
			int result=NewDlg.DoModal();

			memset(Score,0,sizeof(Score));//將數組中所有元素置零
			memset(Grade,0,sizeof(Grade));//該數組也必須及時清空,否則其和將不斷累加。	

			n_Person=0;
			n_Key=0;
			}
			break;
		}
	default:	MessageBox("請您重新選擇!");break;
	}
	Student[0]=0x00;
	Student[1]=0x00;
	PointStu=0;
}

void CSoundDlg::Transmitt()
{
	int i;
	CByteArray array;
	//	char sOutput[10];
	unsigned char Sum=0,Count;
	Count=TxData[0];
	for(i=0;i<Count-1;i++)
		Sum+=TxData[i];
	TxData[Count-1]=Sum;
	
	array.RemoveAll();
	array.SetSize(Count);
	
	for(i=0;i<Count;i++)
		array.SetAt(i,TxData[i]);
	
	if(!m_ComPort.GetPortOpen())
		m_ComPort.SetPortOpen(TRUE);
	m_ComPort.SetOutput(COleVariant(array));
	//	m_TxData="";
	//	for(i=0;i<Count+1;i++)
	//	{sprintf(sOutput,"%02X,",TxData[i]);
	//	m_TxData+=sOutput;
	//	}
	UpdateData(FALSE);
}

void CSoundDlg::OnA1() 
{
//OnA1()完成兩個功能。1、處理學生呼叫;2、選學生進行通訊。


	// TODO: Add your control notification handler code here
	if(m_Call=="A1")//相應A1呼叫
	{
		//去除粗體,清除呼號
		ClearFont();
		//		m_Call="";
		//		pCallButton->SetFont(pOldFont);
		//		ChangeFont(&m_A1,pOleFont);
		PointStu=0;
		Student[PointStu]=0x01;
		m_Text="師生通話:A1";
		UpdateData(FALSE);
		OnSend();
	}
	else//選學生進行通訊
	{
		//判斷兩學生是否重復
		if(Student[0]!=0x01)//表還沒有選過A1時
		{
			int nIndex=m_Combo.GetCurSel();
			if(nIndex==4)//在"兩學生間通話"的情況
			{
				if(PointStu==0)
				{
					Student[PointStu]=0x01;
					Student[1]=0x00;
					PointStu=1;
					m_Text="兩學生之間通話:A1";
				}
				else
				{
					Student[PointStu]=0x01;
					PointStu=0;
					m_Text+=",A1";
				}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲图片欧美激情| 亚洲成人免费在线观看| 亚洲午夜在线电影| 国产一区二区调教| 欧美日韩一区二区三区高清| 国产午夜精品一区二区三区嫩草| 亚洲国产精品一区二区www | 中文字幕高清一区| 日欧美一区二区| 欧洲视频一区二区| 中文字幕高清不卡| 国产精品一区免费在线观看| 9191久久久久久久久久久| 亚洲品质自拍视频| 成人sese在线| 中文字幕中文字幕在线一区| 国产麻豆精品一区二区| 4438x亚洲最大成人网| 亚洲bt欧美bt精品777| 色拍拍在线精品视频8848| 国产精品日产欧美久久久久| 国内国产精品久久| 精品入口麻豆88视频| 蜜臂av日日欢夜夜爽一区| 欧美电影一区二区| 日本不卡一二三区黄网| 欧美精品日韩一本| 丝袜亚洲另类欧美综合| 8v天堂国产在线一区二区| 日韩精品一二三| 日韩丝袜情趣美女图片| 蜜臀久久久久久久| 日韩欧美亚洲国产另类 | 国产综合色精品一区二区三区| 欧美日韩精品高清| 偷窥国产亚洲免费视频| 日韩视频免费观看高清在线视频| 日韩高清不卡在线| 精品国产sm最大网站免费看| 国产一区二区三区不卡在线观看 | 午夜精品久久一牛影视| 欧美日韩精品一二三区| 视频一区欧美精品| 久久综合狠狠综合| 成人国产免费视频| 亚洲精品视频在线观看免费 | 国产午夜精品久久| 成人福利在线看| 一区二区久久久久久| 欧美日韩国产三级| 久久99最新地址| 欧美激情在线一区二区| 色系网站成人免费| 日本不卡123| 国产精品美女久久久久久久久久久| 国产91丝袜在线观看| 亚洲卡通欧美制服中文| 欧美精品日韩综合在线| 国产成人亚洲综合a∨婷婷图片| 日韩一区在线免费观看| 制服.丝袜.亚洲.中文.综合 | 日本不卡在线视频| 久久精品水蜜桃av综合天堂| 日本精品一级二级| 麻豆成人av在线| 亚洲日本韩国一区| 欧美电影免费观看完整版| av电影天堂一区二区在线| 免费观看30秒视频久久| 中文字幕一区二区视频| 日韩视频中午一区| 91麻豆swag| 风流少妇一区二区| 天天免费综合色| 亚洲欧美在线aaa| 精品久久国产老人久久综合| 日本乱码高清不卡字幕| 国产精品中文欧美| 五月天激情综合| 亚洲欧美日韩在线不卡| 精品国产一区二区三区av性色| 日本二三区不卡| 国产成人在线观看| 日本免费在线视频不卡一不卡二| 中文字幕亚洲区| 亚洲精品一区二区三区在线观看| 在线一区二区视频| 成人美女视频在线看| 另类调教123区| 亚洲电影第三页| 成人免费在线视频| 久久久久久久综合日本| 国产成人精品一区二区三区四区 | 日韩三级在线观看| 色一区在线观看| 成人精品gif动图一区| 九九精品一区二区| 天天做天天摸天天爽国产一区 | 国内外成人在线| 日本不卡一二三| 亚洲福利一区二区三区| 亚洲国产成人午夜在线一区| 久久久青草青青国产亚洲免观| 欧美丰满少妇xxxxx高潮对白| 日本道在线观看一区二区| 91香蕉视频在线| 97久久人人超碰| www.成人在线| www.视频一区| 99re视频这里只有精品| 成人国产精品免费网站| av在线综合网| 97se亚洲国产综合自在线观| 99久久国产综合精品女不卡| av资源网一区| 91蝌蚪porny| 色婷婷综合五月| 91国偷自产一区二区开放时间| 91丝袜呻吟高潮美腿白嫩在线观看| 国产成人av网站| 国产成人无遮挡在线视频| 国产成人精品影视| 91一区二区三区在线播放| 91一区一区三区| 欧美综合一区二区三区| 欧美日韩mp4| 精品99一区二区三区| 国产农村妇女毛片精品久久麻豆| 国产农村妇女精品| 一个色妞综合视频在线观看| 亚洲午夜在线视频| 老司机精品视频导航| 国产精品99久久久久久久女警| 成人精品一区二区三区四区 | 粗大黑人巨茎大战欧美成人| 粉嫩在线一区二区三区视频| eeuss鲁片一区二区三区| 在线亚洲免费视频| 日韩欧美电影一区| 欧美极品aⅴ影院| 一区二区三区 在线观看视频| 日本美女一区二区三区| 国产大陆亚洲精品国产| 色偷偷成人一区二区三区91 | 激情小说亚洲一区| 不卡欧美aaaaa| 在线不卡免费av| 国产性做久久久久久| 一区二区三区日本| 精品在线一区二区| 色综合天天综合| 精品国产一区二区三区av性色 | 在线免费观看不卡av| 日韩欧美国产精品| 亚洲欧美一区二区视频| 老色鬼精品视频在线观看播放| 成人免费毛片高清视频| 日韩一区二区三区观看| 国产精品传媒视频| 久草这里只有精品视频| 在线免费观看一区| 国产日韩三级在线| 日本伊人色综合网| 91丨九色porny丨蝌蚪| 精品国产乱码久久久久久图片| 亚洲人成精品久久久久| 国产一区二区三区四区五区美女| 欧美亚洲禁片免费| 国产精品视频你懂的| 久久疯狂做爰流白浆xx| 欧美剧情电影在线观看完整版免费励志电影 | 777色狠狠一区二区三区| 国产精品久久久久永久免费观看| 免费在线观看成人| 日本精品裸体写真集在线观看| 久久久久久久久久久99999| 五月婷婷激情综合网| 91蜜桃在线免费视频| 欧美国产激情二区三区| 精品一区二区精品| 欧美一区二区三区视频| 夜夜爽夜夜爽精品视频| 99久久国产综合精品色伊| 国产精品视频yy9299一区| 久久精品国产久精国产| 欧美一区二区三区在线电影| 亚洲高清在线精品| 色天天综合色天天久久| 亚洲欧美在线aaa| 97久久精品人人澡人人爽| 国产精品成人一区二区艾草 | 中文字幕亚洲视频| 粉嫩欧美一区二区三区高清影视| 欧美精品一区男女天堂| 国产精品资源在线观看| 国产视频一区不卡| 成人中文字幕在线| 亚洲欧洲日本在线| 91在线观看一区二区| 亚洲三级小视频|