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

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

?? createrdlg.cpp

?? 這是我自己寫的wince程序
?? CPP
字號:
// CreaterDlg.cpp : implementation file
//

#include "stdafx.h"
#include "Creater.h"
#include "CreaterDlg.h"
#include "NameBox.h"
#include "NumBox.h"
#include "FileLoader.h"

#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()

/////////////////////////////////////////////////////////////////////////////
// CCreaterDlg dialog

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

void CCreaterDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CCreaterDlg)
	DDX_Control(pDX, IDC_DELCHAPTER, m_delchapter);
	DDX_Control(pDX, IDC_BUTTON3, m_autodiv);
	DDX_Control(pDX, IDC_CHECK2, m_auto);
	DDX_Control(pDX, IDC_NEWCHAPTER, m_newchapter);
	DDX_Control(pDX, IDC_FILENAME, m_filename);
	DDX_Control(pDX, IDC_TEXT, m_text);
	DDX_Control(pDX, IDC_CHAPTER, m_chapter);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CCreaterDlg, CDialog)
	//{{AFX_MSG_MAP(CCreaterDlg)
	ON_WM_SYSCOMMAND()
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_BN_CLICKED(IDC_ADDFILE, OnAddfile)
	ON_BN_CLICKED(IDC_NEWCHAPTER, OnNewChapter)
	ON_LBN_DBLCLK(IDC_CHAPTER, OnDblclkChapter)
	ON_LBN_SELCHANGE(IDC_CHAPTER, OnSelchangeChapter)
	ON_BN_CLICKED(IDC_CHECK2, OnCheck2)
	ON_BN_CLICKED(IDC_BUTTON3, OnButton3)
	ON_BN_CLICKED(IDC_DELCHAPTER, OnDelchapter)
	ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
	ON_BN_CLICKED(IDC_ClearChapter, OnClearChapter)
	ON_BN_CLICKED(IDC_CREAT, OnCreat)
	ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CCreaterDlg message handlers

BOOL CCreaterDlg::OnInitDialog()
{
	int i;
	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
	tot_chapter = 0;
	for(i=0 ;i<10000 ;i++ )
	{
		cn_pos[i] = -1;
	}
	return TRUE;  // return TRUE  unless you set the focus to a control
}

void CCreaterDlg::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 CCreaterDlg::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 CCreaterDlg::OnQueryDragIcon()
{
	return (HCURSOR) m_hIcon;
}

void CCreaterDlg::OnAddfile() 
{
	// TODO: Add your control notification handler code here
	CFile	file;
	char	tmp_text[file_length];
	int		line,i,l;
	CFileDialog filedialog(true,"txt",NULL,OFN_HIDEREADONLY,"Source Files (*.txt)|*.txt|All Files (*.*)|*.*||");	
	filedialog.DoModal();
	if(filedialog.GetPathName().GetLength() > 0)
	{
		m_filename.SetWindowText(filedialog.GetPathName());
		if(file.Open(filedialog.GetPathName(),CFile::modeRead))
		{
			if(file.GetLength()<file_length-2)
			{
				l = file.GetLength();
				line = m_text.GetFirstVisibleLine();
				memset(tmp_text,0,file_length);
				file.Read(tmp_text,file_length);
				if(tmp_text[l-1]!= '\n')
				{
					tmp_text[l] = 13;
					tmp_text[l+1] = 10;
					tmp_text[l+2] = 0;
				}
				text.operator +=(tmp_text);
				m_text.SetWindowText(text);
				m_text.LineScroll(line);
				if(m_auto.GetCheck())
				{				
					i = m_chapter.GetCount();
					EmptyInfo(false);
					AutoPartition(i);
				}
			}
			else
			{
				::AfxMessageBox("文件不能超過500k。");
			}
		}
	}
}

void CCreaterDlg::OnNewChapter() 
{
	// TODO: Add your control notification handler code here
	int line,pos,dif,i,th,tmp;
	line = m_text.GetFirstVisibleLine();
	if(text.GetLength() == 0)
	{
		::AfxMessageBox("還沒導入文件。");
	}
	else
	{
		if(cn_pos[line/min_interval] == -1)
		{
			NameBox namebox;
			namebox.DoModal();
			if(namebox.m_name.GetLength()>0)
			{		
				tmp = line/min_interval;
				if(tot_chapter<max_chapter)
				{
					
					dif = line%min_interval;
					cn_pos[line/min_interval] = dif*1000+tot_chapter;
					chapter_name[tot_chapter].operator =(namebox.m_name);
					for(i=0,th = 0 ;i<tmp ;i++ )
						if(cn_pos[i] != -1)
							th++;
					m_chapter.InsertString(th,chapter_name[tot_chapter]);
					tot_chapter++;
				}
				else
				{
					::AfxMessageBox("章節過多。");
				}
			}	
		}
		else
		{
			::AfxMessageBox("此處附近已經生成過章節.");
		}
	}
}

void CCreaterDlg::OnDblclkChapter() 
{
	// TODO: Add your control notification handler code here
	int i,line,k,j,th;
	NameBox namebox;
	namebox.DoModal();
	if(namebox.m_name.GetLength()>0)
	{
		line = m_text.GetFirstVisibleLine();
		if(cn_pos[line/min_interval] == -1)
		{
			::AfxMessageBox("errror!!");
		}
		else
		{
			chapter_name[cn_pos[line/min_interval]%1000].operator =(namebox.m_name);
			for(i=0 ;i<m_chapter.GetCount() ;i++  )
				if(m_chapter.GetSel(i) == 1)
				{
					m_chapter.DeleteString(i);
					m_chapter.InsertString(i,chapter_name[cn_pos[line/min_interval]%1000]);
					break;
				}
		}
	}
}

void CCreaterDlg::OnSelchangeChapter() 
{
	// TODO: Add your control notification handler code here
	int i,line,k,j,th;
	for(i=0 ;i<m_chapter.GetCount() ;i++  )
		if(m_chapter.GetSel(i) == 1)
		{
			for(j=0,th = -1 ;j<max_chapter ;j++ )
				if(cn_pos[j] != -1)
				{
					th++;
					if(th == i)
					{
						line = m_text.GetFirstVisibleLine();
						k =	cn_pos[j]/1000+j*min_interval;
						m_text.LineScroll(k-line);
						break;
					}
				}
			break;
		}
}

void CCreaterDlg::OnCheck2() 
{
	// TODO: Add your control notification handler code here
	int i;
	int state;	

	if(text.GetLength() > 0)
	{
		state = m_auto.GetCheck();
		EmptyInfo(false);
		if(state)
		{
			m_newchapter.EnableWindow(false);	
			m_delchapter.EnableWindow(false);
			m_autodiv.EnableWindow(true);
		}
		else
		{
			m_newchapter.EnableWindow(true);
			m_delchapter.EnableWindow(true);
			m_autodiv.EnableWindow(false);
		}
	}
	else
	{
		m_auto.SetCheck(0);
	}
}

void CCreaterDlg::OnEditchangeCombo2() 
{
	// TODO: Add your control notification handler code here
	
}

void CCreaterDlg::OnButton3() 
{
	// TODO: Add your control notification handler code here
	int i,maxc,num;
	int minp,maxp,tol_line;
	char buf[20];
	NumBox cnumbox;
	if(text.GetLength() > 0)
	{
		m_text.GetScrollRange(SB_VERT,&minp,&maxp);
		tol_line = maxp;
		maxc = tol_line/min_interval;
		EmptyInfo(false);
		cnumbox.DoModal();
		if(cnumbox.m_num.GetLength()>0)
		{
			sscanf(cnumbox.m_num,"%d",&num);
			if(num>0 && num<maxc+1)
			{
				AutoPartition(num);
			}
			else
			{
				sprintf(buf,"請輸入數字,此文章最多只能分成%d段.",maxc);
				::AfxMessageBox(buf);
			}
		}
	}
	else
	{
		::AfxMessageBox("還沒導入文件。");
		m_auto.SetCheck(0);
	}
}

void CCreaterDlg::AutoPartition(int n)
{
	int i;
	int minp,maxp,tol_line;
	int interval,addition,line,ti,ta;
	char buf[20];
	double tmp;
	m_text.GetScrollRange(SB_VERT,&minp,&maxp);
	tol_line = maxp;
	interval = tol_line/n;
	tmp = (double)tol_line/(double)n;
	tmp -= interval;
	if(tmp != 0)
	{
		addition = 1/tmp+1;
	}
	else
	{
		addition = 0;
	}
	line = 0;
	ta = 1;
	while(line<tol_line && tot_chapter < n)
	{		
		sprintf(buf,"第%d章",tot_chapter+1);
		m_chapter.InsertString(tot_chapter,buf);
		chapter_name[tot_chapter].operator = (buf);
		cn_pos[line/min_interval] = tot_chapter+(line%min_interval)*1000;
		tot_chapter++;
		line += interval;
		i++;
		if(addition)
		{
			ta--;
			if(ta == 0)
			{
				ta = addition;
				line +=1;
			}
		}
	}
	sprintf(buf,"每章節平均%d行左右。",tol_line/n);
	::AfxMessageBox(buf);
}

void CCreaterDlg::EmptyInfo(bool tag)
{
	int i;
	tot_chapter = 0;
	for(i=0 ;i<max_chapter ;i++ )
		cn_pos[i] = -1;
	m_chapter.ResetContent();
	if(tag)
	{
		text.Empty();
		m_text.SetWindowText("");
	//	m_text.Clear();
	}
}

void CCreaterDlg::OnDelchapter() 
{
	// TODO: Add your control notification handler code here
	int i,th,j;
	if(text.GetLength() == 0)
	{
		::AfxMessageBox("還沒導入文件。");
	}
	else
	{
		for(i=0 ;i<m_chapter.GetCount() ;i++  )
			if(m_chapter.GetSel(i) == 1)
				break;		
		for(j=0,th = 0 ;j<max_chapter ;j++ )
			if(cn_pos[j] != -1)
			{
				th++;			
				if(th == i+1)
				{
					cn_pos[j] = -1;
					m_chapter.DeleteString(i);
					break;
				}
			}
	}
}

void CCreaterDlg::OnButton1() 
{
	// TODO: Add your control notification handler code here
	EmptyInfo(true);
	m_filename.SetWindowText("");
}

void CCreaterDlg::OnClearChapter() 
{
	// TODO: Add your control notification handler code here
	EmptyInfo(false);
}

void CCreaterDlg::OnCreat() 
{
	// TODO: Add your control notification handler code here
	int l,i,j,t,k;
	char buf[1000];
	LPWSTR ttt;
	CFileDialog saver(false,"pbd",NULL,OFN_HIDEREADONLY,"pbd");
	CFile file;
	saver.DoModal();
//	saver.set
	if(saver.GetPathName().GetLength() > 0)
	{
		t = 0;		
		l = text.GetLength();
		sprintf(buf,"%d",l);
		k = strlen(buf);
		buf[k] = '\n';
		buf[k+1] = 0;
//		buf[k] = 13;
//		buf[k+1] = 10;
//		buf[k+2] = 0;
		
		while(t != strlen(buf))
		{
			t = strlen(buf);
			sprintf(buf,"%d",l+t);
			k = strlen(buf);
			buf[k] = '\n';
			buf[k+1] = 0;
//			buf[k] = 13;
//			buf[k+1] = 10;
//			buf[k+2] = 0;
		}
		text.Insert(0,buf);
		for(i=0,j=0 ;i<max_chapter ;i++ )
			if(cn_pos[i]!=-1)
				j++;
		sprintf(buf,"%d",j);
		k = strlen(buf);
		buf[k] = '\n';
		buf[k+1] = 0;
//		buf[k] = 13;
//		buf[k+1] = 10;
//		buf[k+2] = 0;
		text.operator += (buf);
		l = text.GetLength();
		for(i=0 ;i<max_chapter ;i++ )
			if(cn_pos[i]!=-1)
			{				
				sprintf(buf,"%d %s",i*min_interval+cn_pos[i]/1000,chapter_name[cn_pos[i]%1000]);
				k = strlen(buf);
				buf[k] = '\n';
				buf[k+1] = 0;
//				buf[k] = 13;
//				buf[k+1] = 10;
//				buf[k+2] = 0;
				text.operator += (buf);
			}
		text.operator +=("2\n");
		text.operator +=("10 riysh\n");
		text.operator +=("50 riyshagain\n");
		l = text.GetLength();
		if(file.Open(saver.GetPathName(),CFile::modeWrite|CFile::modeCreate))
		{
			ttt = new WCHAR[l*2];
			int a=MultiByteToWideChar(CP_ACP,0,text,l,ttt,l*2);
			file.Write(ttt,l*2);
		}
		else
		{
			::AfxMessageBox("打開寫文件錯誤。");
		}
	}
}
//ret = WideCharToMultiByte(g_iCodePageList[k], 0, (unsigned short *)wbuff, 1, buff, 2, 0,0)     
void CCreaterDlg::OnButton2() 
{
	// TODO: Add your control notification handler code here
	CFileDialog filedialog(true);
	
	filedialog.DoModal();
	if(filedialog.GetPathName().GetLength() > 0)
	{
		FileLoader	test(filedialog.GetPathName());		
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美高清精品3d| 国产精品一二三四| 91超碰这里只有精品国产| 亚洲伊人色欲综合网| 日本乱码高清不卡字幕| 亚洲国产精品久久久男人的天堂| 欧美日韩国产片| 久久精品国产999大香线蕉| 精品福利一区二区三区| 大胆欧美人体老妇| 亚洲曰韩产成在线| 欧美一区二区三区四区在线观看| 国产一区二区电影| 亚洲欧美一区二区久久 | 精油按摩中文字幕久久| 国产女人水真多18毛片18精品视频| 丁香亚洲综合激情啪啪综合| 亚洲视频一区在线观看| 在线不卡免费欧美| 国产传媒日韩欧美成人| 一区二区三区.www| 日韩一区二区三区在线| 不卡的av在线播放| 日韩在线卡一卡二| 中文字幕中文字幕一区二区| 欧美日韩在线观看一区二区| 国产乱一区二区| 一区二区视频在线看| 日韩精品中文字幕在线一区| 成人18精品视频| 久久精品国产精品亚洲精品| 国产精品美女久久久久久久久| 欧美日韩大陆一区二区| 成人在线综合网| 日韩中文字幕一区二区三区| 国产欧美日韩在线观看| 欧美日韩精品电影| 99久久久久免费精品国产 | 91精品国产色综合久久ai换脸| 狠狠色综合播放一区二区| 亚洲日本电影在线| 久久影院午夜片一区| 欧美色窝79yyyycom| 国产91丝袜在线播放0| 亚洲成va人在线观看| 国产精品视频观看| 欧美tk丨vk视频| 欧美三级视频在线播放| 成人av在线播放网站| 国产综合色精品一区二区三区| 亚洲综合av网| 亚洲欧美日韩在线| 久久久久久久久99精品| 日韩一级免费一区| 欧美日韩一区二区三区在线看| 99久久伊人久久99| 成人av在线播放网址| 国产一区二区三区不卡在线观看| 午夜精品久久久久久久久| 亚洲精品国久久99热| 国产精品网站在线观看| 久久男人中文字幕资源站| 91精品国产色综合久久| 欧美高清激情brazzers| 欧洲av一区二区嗯嗯嗯啊| 91免费视频网| 99国产精品久| 99精品欧美一区二区三区小说| 国产99精品视频| 国产成人免费视频| 国产一区二区美女| 极品少妇一区二区| 韩国精品在线观看| 国产乱子伦一区二区三区国色天香 | 免费人成在线不卡| 亚洲一区日韩精品中文字幕| 亚洲欧美日韩中文播放 | 久久久久国色av免费看影院| 精品国产91乱码一区二区三区 | 日韩精品一二三四| 午夜精品在线视频一区| 日本中文字幕一区二区视频| 男人的j进女人的j一区| 91社区在线播放| av网站免费线看精品| 99久久婷婷国产精品综合| 91蜜桃视频在线| 欧美性色黄大片| 欧美一区午夜视频在线观看| 日韩视频免费直播| 久久亚洲捆绑美女| 国产精品成人网| 一区二区三区欧美日韩| 午夜欧美大尺度福利影院在线看| 五月婷婷激情综合| 国产呦萝稀缺另类资源| 国产高清亚洲一区| 色先锋aa成人| 欧美日韩国产高清一区二区三区 | 亚洲卡通欧美制服中文| 午夜精品久久久久久久99水蜜桃 | 777xxx欧美| 久久综合九色综合97_久久久| 久久精品夜夜夜夜久久| 亚洲另类春色校园小说| 免费成人深夜小野草| 精品制服美女丁香| 成人免费av资源| 色婷婷av一区二区三区软件| 欧美日韩免费一区二区三区视频| 日韩精品一区二区在线| 中文字幕巨乱亚洲| 午夜精彩视频在线观看不卡| 精品一区二区久久久| 91麻豆国产在线观看| 欧美一区二区三区喷汁尤物| 国产精品欧美综合在线| 丝袜诱惑制服诱惑色一区在线观看| 国产精品主播直播| 欧美日韩精品一区视频| 国产欧美中文在线| 喷水一区二区三区| 欧美人妇做爰xxxⅹ性高电影| xnxx国产精品| 亚洲va国产va欧美va观看| 国产成人av电影| 欧美一区二区成人| 亚洲精选视频免费看| 国产麻豆一精品一av一免费 | 91精品国产全国免费观看| 国产精品麻豆视频| 日韩精品一二三区| 色哟哟在线观看一区二区三区| 欧美刺激脚交jootjob| 亚洲国产裸拍裸体视频在线观看乱了| 国产精品一二三在| 日韩欧美成人激情| 天天影视涩香欲综合网| 日本久久精品电影| 日本一区二区三区国色天香 | 日韩情涩欧美日韩视频| 悠悠色在线精品| 成人av电影在线网| 久久久久国产精品厨房| 美女国产一区二区三区| 欧美日韩一区中文字幕| 亚洲免费资源在线播放| 成人毛片老司机大片| 久久综合网色—综合色88| 亚洲大尺度视频在线观看| 色狠狠综合天天综合综合| 中国av一区二区三区| 国产精品一区二区视频| 欧美一区二区三区思思人| 亚洲国产成人精品视频| 色www精品视频在线观看| 综合在线观看色| 成人精品小蝌蚪| 国产精品网站在线播放| 国产99久久久国产精品| 国产日韩欧美a| 国产高清不卡一区二区| 国产拍欧美日韩视频二区| 国产一区二区不卡老阿姨| 日韩欧美国产不卡| 日韩激情一二三区| 欧美一区二区网站| 免费成人在线观看| 欧美www视频| 国产精品亚洲专一区二区三区| 国产亚洲女人久久久久毛片| 国产永久精品大片wwwapp | 91麻豆蜜桃一区二区三区| 国产精品盗摄一区二区三区| av一区二区三区四区| 尤物在线观看一区| 欧美日韩国产电影| 麻豆久久久久久| 26uuu色噜噜精品一区| 国产一区二区三区四区在线观看| 久久久噜噜噜久久人人看 | 懂色av一区二区三区蜜臀| 国产日产欧产精品推荐色| 成人av第一页| 一级中文字幕一区二区| 欧美高清视频不卡网| 韩国精品主播一区二区在线观看 | 亚洲日本va在线观看| 欧美日韩免费一区二区三区视频| 日韩成人av影视| 欧美mv日韩mv国产网站app| 成人黄色国产精品网站大全在线免费观看| 国产精品色噜噜| 欧美日韩精品综合在线| 韩国欧美国产一区| 有码一区二区三区| 精品入口麻豆88视频| 成人免费看黄yyy456| 亚洲一区二区三区四区在线免费观看 | 中文字幕乱码亚洲精品一区|