亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
亚洲女同一区二区| 亚洲综合小说图片| 亚洲免费成人av| 欧美日韩国产美| 粉嫩欧美一区二区三区高清影视| 一区二区三区小说| 国产亚洲成aⅴ人片在线观看| 色婷婷综合久久| 国产suv精品一区二区6| 日本视频中文字幕一区二区三区| 一区二区欧美国产| 亚洲国产精品成人综合| 91欧美一区二区| 青青草伊人久久| 久久久久一区二区三区四区| 欧美猛男超大videosgay| 丁香婷婷综合网| 国产69精品一区二区亚洲孕妇| 激情综合一区二区三区| 一区二区三区免费看视频| 国产精品看片你懂得| 国产精品久久久久久久久动漫| 久久一夜天堂av一区二区三区| 欧美日韩精品欧美日韩精品一综合| 一本色道**综合亚洲精品蜜桃冫 | 亚洲免费看黄网站| 亚洲欧洲精品天堂一级| 国产精品天美传媒沈樵| 久久九九久久九九| 国产精品理论在线观看| 亚洲男人的天堂av| 一区二区三区自拍| 日本美女一区二区三区视频| 日韩经典中文字幕一区| 久久99精品网久久| 成人免费高清在线| 欧美日韩一区不卡| 精品少妇一区二区三区在线播放 | 亚洲一区二区视频在线观看| 精品国产电影一区二区| 欧美成人a视频| 中文字幕一区在线| 亚洲va在线va天堂| 久久精品国产成人一区二区三区 | 国产精品亚洲а∨天堂免在线| 国产成人av网站| 欧美性xxxxxxxx| 国产欧美一区二区精品仙草咪| 亚洲欧美影音先锋| 麻豆91免费观看| 色老汉一区二区三区| 日韩欧美一区在线| 亚洲二区在线视频| av午夜一区麻豆| 精品国产3级a| 亚洲综合999| 成人一道本在线| 久久久www成人免费毛片麻豆 | 亚瑟在线精品视频| caoporen国产精品视频| 日韩精品专区在线影院观看 | 亚洲超碰精品一区二区| aaa亚洲精品一二三区| 欧美v亚洲v综合ⅴ国产v| 日韩成人一区二区三区在线观看| 粉嫩一区二区三区在线看 | 欧美色综合天天久久综合精品| 亚洲电影在线播放| 欧美熟乱第一页| 亚洲欧美一区二区三区国产精品| 国产一区二区主播在线| 91精品国产综合久久国产大片 | 黄色日韩三级电影| 日韩欧美亚洲国产另类 | 亚洲国产成人av好男人在线观看| 成人精品小蝌蚪| 国产欧美日韩精品在线| 韩日欧美一区二区三区| 精品对白一区国产伦| 国产黄人亚洲片| 国产精品高潮呻吟久久| 99久久亚洲一区二区三区青草| 国产精品国产三级国产普通话蜜臀 | 51久久夜色精品国产麻豆| 亚洲一区成人在线| 欧美va亚洲va在线观看蝴蝶网| 久久精品国产第一区二区三区| 精品国产123| 色老头久久综合| 老司机免费视频一区二区三区| 精品美女一区二区| 日韩一级大片在线| 国产麻豆一精品一av一免费| 国产精品午夜电影| 欧美日韩久久久| 国产成人在线观看| 亚洲h精品动漫在线观看| www国产精品av| 色婷婷久久久综合中文字幕 | 欧美tk—视频vk| 91影视在线播放| 国产在线视频一区二区三区| 亚洲色图丝袜美腿| 久久久综合九色合综国产精品| 91免费版在线看| 大胆亚洲人体视频| 精品一区二区在线观看| 亚洲午夜在线电影| 国产精品成人免费在线| 欧美人xxxx| 欧美亚洲综合一区| 成人18视频在线播放| 激情深爱一区二区| 日韩在线一区二区| 同产精品九九九| 亚洲曰韩产成在线| 亚洲精品中文在线观看| 欧美激情一区在线观看| 日韩欧美电影一区| 91精品国产全国免费观看| 国产日韩av一区| 日韩一区二区在线观看视频 | 国产精品素人一区二区| 欧美精品一区二区三区蜜桃视频| 欧美日韩日日夜夜| 欧美在线高清视频| 欧美日本免费一区二区三区| 99精品国产视频| 色94色欧美sute亚洲线路一ni| 精品久久一区二区三区| 宅男在线国产精品| 欧美一二三在线| 久久天堂av综合合色蜜桃网| 久久欧美一区二区| 国产精品免费aⅴ片在线观看| 国产欧美久久久精品影院| 国产亚洲短视频| 成人免费一区二区三区在线观看| 国产精品女人毛片| 综合欧美一区二区三区| 洋洋av久久久久久久一区| 日本伊人色综合网| 国产成人午夜电影网| 欧美性色aⅴ视频一区日韩精品| 欧美日本国产视频| 日本美女一区二区| 国产精品亚洲成人| 欧美高清一级片在线| 国产午夜精品一区二区 | 国产91精品久久久久久久网曝门| 99国产精品久久久久久久久久久| 欧美日韩免费一区二区三区视频| 日韩一区二区在线免费观看| 一区在线中文字幕| 日本欧美大码aⅴ在线播放| 成人激情免费视频| 精品理论电影在线| 亚洲成人777| 色综合久久九月婷婷色综合| 日韩一区二区三区视频| 伊人色综合久久天天人手人婷| 狠狠色丁香久久婷婷综合_中| 色诱视频网站一区| 中文字幕av一区 二区| 久久国产欧美日韩精品| 欧美日韩一区二区三区高清| 久久一留热品黄| 9色porny自拍视频一区二区| 国产·精品毛片| 成人精品视频一区二区三区| 欧美乱熟臀69xxxxxx| 亚洲午夜私人影院| 精品视频一区二区不卡| 有码一区二区三区| 色偷偷成人一区二区三区91| 国产精品久久久久永久免费观看 | 亚洲电影一级片| 在线国产亚洲欧美| 亚洲成人一区二区| 欧美一区二区视频在线观看2022| 亚洲va国产va欧美va观看| 欧美日韩日本视频| 日本不卡视频在线| 久久久久国产精品麻豆ai换脸| 高清久久久久久| 中文字幕佐山爱一区二区免费| 91麻豆国产在线观看| 青青草精品视频| 亚洲国产成人午夜在线一区| 99久久久精品免费观看国产蜜| 亚洲成av人**亚洲成av**| 91视视频在线观看入口直接观看www | 成人av网站在线观看| xnxx国产精品| 狠狠v欧美v日韩v亚洲ⅴ| 欧美一区二区在线看| 亚洲线精品一区二区三区 | 91麻豆123| 青娱乐精品视频| 国产精品美女一区二区|