教你一个问题:
VC6.0中,给一个编辑框定义了一个控件变量:CString m_strSendData;m_strSendData = _T(""); 网上说_T是支持Unicode编码的,但是我输入汉字,
m_strSendData 存储的是汉字的区位码,若输入字母或数字,貌似就成了ASC,我要想让m_strSendData存储的也是字母或数字的Unicode区位码,
该怎么实现? CMSComDlg(CWnd* pParent = NULL); // standard constructor
// Dialog Data
//{{AFX_DATA(CMSComDlg)
enum { IDD = IDD_MSCOM_DIALOG };
CMSComm m_ctrMSCom;
CString m_strComNo;
CString m_strCheckBit;
CString m_strRecvData;
CString m_strSendData; //编辑框控件变量
CMSComDlg::CMSComDlg(CWnd* pParent /*=NULL*/)
: CDialog(CMSComDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CMSComDlg)
m_strComNo = _T("");
m_strBps = _T("");
m_strDataBit = _T("");
m_strStopBit = _T("");
m_strCheckBit = _T("");
m_strRecvData = _T("");
m_strSendData = _T(""); //编辑框控件变量
VC6.0中,给一个编辑框定义了一个控件变量:CString m_strSendData;m_strSendData = _T(""); 网上说_T是支持Unicode编码的,但是我输入汉字,
m_strSendData 存储的是汉字的区位码,若输入字母或数字,貌似就成了ASC,我要想让m_strSendData存储的也是字母或数字的Unicode区位码,
该怎么实现? CMSComDlg(CWnd* pParent = NULL); // standard constructor
// Dialog Data
//{{AFX_DATA(CMSComDlg)
enum { IDD = IDD_MSCOM_DIALOG };
CMSComm m_ctrMSCom;
CString m_strComNo;
CString m_strCheckBit;
CString m_strRecvData;
CString m_strSendData; //编辑框控件变量
CMSComDlg::CMSComDlg(CWnd* pParent /*=NULL*/)
: CDialog(CMSComDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CMSComDlg)
m_strComNo = _T("");
m_strBps = _T("");
m_strDataBit = _T("");
m_strStopBit = _T("");
m_strCheckBit = _T("");
m_strRecvData = _T("");
m_strSendData = _T(""); //编辑框控件变量
解决方案 »
- 怎么解决按钮单击响应慢的问题? (连续按两下,如果间隔时间过短,只响应一次。)
- 子窗口线程消息发送的问题
- 请教ATL COM 组件的问题,我写的控件在VC的ACTIVEX容器里面测试正常可是嵌入IE的时候IE就会崩调,具体情况请进~~~~~~~~
- 注册公司的经营范围如何填写?
- 如何将List控件中显示的记录集保存成.txt或.excl,又如何在对话框中直接打印出来?在VC资源里也有且给分100
- 这个是在编译的时侯算还是运行的时候算?
- 请介绍一些目录操作API
- 请问在一个程序中打开若干程序的问题!
- 高分求助:关于DATAGRID简单问题
- 关于自定义消息
- 如何更改Project中Output file默认的扩展名
- VC2010的IDE编辑器中,空格都被显示成了小点,怎么办
实现写入文件时是unicode,读出来都是ascii。
不要定义控件变量,直接用GetDlgItemTextW和SetDlgItemTextW
如果你要明确使用unicod字符应该用L""
void CMSComDlg::ReadDataFromFile()
{
unsigned char num[2][10] = {
{0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3}, //0~9的区位码
{0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9}
};
char *p = m_strSendData.GetBuffer(m_strSendData.GetLength()); //输入字符的存储区域
unsigned char i=0, j=0;
unsigned char n,qh,wh;
unsigned long offset;
FILE *fd;
fd=fopen( "HZK16 ", "rb ");
memset(cBuf, 0, 1024);
while(p[i])
for(j = 0; j < m_strSendData.GetLength()/2; j++) //getlength返回字节数
{
if (p[i] <=0xA0) //小于0xA0,输入的是数字
{
i++;
n = p[i++] - '0';
qh =num[0][n] - 0xA0;
wh =num[1][n] - 0xA0;
}
else { //否则是汉字
qh=p[i++]-0xa0;
wh=p[i++]-0xa0;
}