Comment obtenir un autre texte de langue par GetWindowText? J'ai modfying un projet de tableau blanc. Lorsque l'utilisateur tape dans le tableau blanc, la fonction onchange est appelée et affiche le texte sur le tableau blanc. Cependant, quand je tape du texte japonais (langue par défaut non système) il montre "?" au lieu. Ce qui suit est le code spinet pour onchange.Comment obtenir un autre texte de langue par GetWindowText?
void CHBEdit::OnChange()
{
static bool bChanged = true;
CDC *pDC = GetDC();
if (bChanged) {
CString str;
GetWindowText(str);
m_strText = str;
int iStartChar, iEndChar;
GetSel(iStartChar, iEndChar);
CRect rect;
GetWindowRect(&rect);
CFont *Oldfont = (CFont *)pDC->SelectObject(&m_Font);
CSize size = pDC->GetOutputTextExtent(str); //+ "a");
pDC->SelectObject(Oldfont);
SetWindowPos(NULL, 0, 0, size.cx, size.cy, SWP_NOMOVE);
bChanged = false;
SetWindowText(str);
SetSel(iStartChar, iEndChar);
}
else
bChanged = true;
ReleaseDC(pDC);
}
Je suis vraiment nouveau en C++. J'ai fait des recherches et j'ai essayé GetwindowTextW avec UTF8 unicode, mais il montre toujours "?". Peut-être que la logique est fausse.
J'apprécierais que quelqu'un puisse me donner la solution pour montrer le texte différent de langue dans le tableau blanc. Je vous remercie.
Merci pour votre réponse. Le projet était un jeu de caractères multi-octets et ne peut pas changer pour utiliser GetWindowTextW. Ensuite, j'ai converti l'ensemble du projet avec le jeu de caractères Unicode à la place du jeu de caractères multi-octets. Cependant, cette méthode a fait que beaucoup de variables ont besoin de changer de type. –
Je ne sais pas comment cela est implémenté dans VS 2005, mais dans les versions modernes, vous ne devriez pas vous préoccuper de 'GetWindowTextW'/'GetWindowTextA', car' GetWindowText' est implémenté comme une macro qui résout automatiquement l'une de ces deux fonctions, selon que le projet est défini comme étant Unicode ou non. Je travaille également avec des projets supportant la langue japonaise en utilisant largement 'GetWindowText' et je n'ai pas les problèmes dont vous vous plaignez! – sergiol