?? high.cpp
字號:
// High.cpp : implementation file
//
#include "stdafx.h"
#include "漢字to拼音簡寫.h"
#include "High.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/*定義的拼音字典,使用全局變量: DICTIONARY MyDict
typedef struct _dict{
char data[10];
int num;
} DICTIONARY;
*/
#include "dictionary.h"
/////////////////////////////////////////////////////////////////////////////
// CHigh dialog
CHigh::CHigh(CWnd* pParent /*=NULL*/)
: CDialog(CHigh::IDD, pParent)
{
//{{AFX_DATA_INIT(CHigh)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CHigh::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CHigh)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CHigh, CDialog)
//{{AFX_MSG_MAP(CHigh)
ON_BN_CLICKED(IDC_REVERSE, OnReverse)
ON_BN_CLICKED(IDC_CLEAR_NEW, OnClearNew)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CHigh message handlers
void CHigh::OnReverse()
{
CString sInput;
GetDlgItemText(IDC_SOURCE_IN,sInput);
if (CheckInputStr(sInput))
{
SetDlgItemText(IDC_RESULT_OUT,GetPYString(sInput));
}
else
{
MessageBox("輸入的字符串不是偶數個英文字符,無法進行翻譯!","錯誤",MB_OK | MB_ICONSTOP);
}
}
CString CHigh::GetPYString(CString src)
{
CString strResult = "";
CString sDoubleChar;
int iLen = src.GetLength();
for (int i=0; i<iLen; i=i+2)
{
sDoubleChar = src.Mid(i,2);//獲得一個漢字
strResult += GetPYChar(sDoubleChar) + " ";
}
return strResult;
}
CString CHigh::GetPYChar(CString src)
{
unsigned char tmp[2]; //必須用無符號的。
CString sResult;
tmp[0] = src.GetAt(0);
tmp[1] = src.GetAt(1);
int i = (short)(tmp[0] - '\0') * 256 + ((short)(tmp[1] - '\0')) - 256*256;
if (i < -20319 || i > -10254)//檢驗輸入漢字是否合法
{
if (src == "\r\n") return "\r\n";
return "\r\n[" + src + "] 是《GB2312簡體中文編碼表》以外的漢字或字符,無法檢索?。r\n";
}
for (int n=DICTION_MAX - 1; n >=0 ; n--)
{
if (i >= MyDict[n].num)
{
sResult.Format("%s",MyDict[n].data);
return sResult;
}
}
return sResult;
}
void CHigh::OnClearNew()
{
CWnd *p = GetDlgItem(IDC_SOURCE_IN);
p->SetWindowText("");
p->SetFocus();
p = GetDlgItem(IDC_RESULT_OUT);
p->SetWindowText("");
}
BOOL CHigh::CheckInputStr(CString src)
{
int iLen = src.GetLength();
if (iLen%2 == 0)
{
return TRUE;
}
else
{
return FALSE;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -