【问题标题】:MFC losing Unicode textMFC 丢失 Unicode 文本
【发布时间】:2020-07-09 18:36:47
【问题描述】:

我有一个 MFC 对话框:

UNICODE 和 _UNICODE 已定义。

class VerifyComp : public CDialog
{
public:
  CString m_VerifyText;
  virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
};

void VerifyComp::DoDataExchange(CDataExchange* pDX)
{
  m_VerifyText = L"Ø2.0 X 4.1";
  pDx->m_bSaveAndValidate = 0;
  DDX_Text(pDX, IDC_VERIFY_TEXT, m_VerifyText);
  pDx->m_bSaveAndValidate = 1;
  DDX_Text(pDX, IDC_VERIFY_TEXT, m_VerifyText);
}

结果是 m_VerifyText == L"O2.0 X 4.1"; 我预计 m_VerifyText 没有改变。

我该如何解决这个问题?

【问题讨论】:

标签: c++ visual-c++ mfc visual-studio-2019


【解决方案1】:

导致问题的对话框 .rc 文件中有一个属性。

OEM 转换设置为真。它必须是假的。

【讨论】:

    【解决方案2】:

    您遇到的问题是,仅仅因为您有一个宽字符文字并不意味着文件本身可以处理 Unicode 字符。

    要解决此问题,请使用 Unicode 字符集保存文件。转到文件->另存为,右键单击“保存”,选择“使用编码保存”,然后点击“是”。现在从编码列表中选择一个 Unicode 选项(我通常更喜欢带有签名的 utf-8)。

    【讨论】:

      猜你喜欢
      • 2015-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多