从C ++代码向右到左的Outlook表单区域

时间:2011-08-29 07:37:31

标签: c++ outlook-addin outlook-2010 right-to-left outlook-2007-addin

如何在编辑代码本身时将字符串设置为具有从右到左(U + 200F RIGHT-TO-LEFT MARK(RLM))unicode char?

意思是,我有给定的代码:

CComPtr<MSForms::IControl> spISubjectControl;
spControls->_GetItemByName(_bstr_t(L"Subject"), &spISubjectControl);
if (spISubjectControl != NULL) {
    CComPtr<Outlook::_OlkTextBox> spSubject;
    hr = spISubjectControl.QueryInterface(&spSubject);
    if (spSubject != NULL) {
        CString subject = L"Some words in some RTL language";
        spSubject->put_Text(_bstr_t(subject));
    }
}

不幸的是,在主题TextBox的“高级属性”中添加方向和特殊字符是不够的,似乎一旦我更改TextBox的内容,方向就会重置为LTR。

请帮助:)

谢谢,

尼里

1 个答案:

答案 0 :(得分:0)

确保subject字符串确实包含Unicode RLM字符。试试L"\u200F ‏Some words in some RTL language"。如果\u200F转义序列不起作用,请尝试使用\x200F