CStdioFile類打開文件,用TextOut輸出時亂碼

CStdioFile類打開文件,用TextOut輸出時亂碼,第1張

CStdioFile類打開文件,用TextOut輸出時亂碼,第2張

寫onFileOpen函數的時候,打開文件後,用CDC::TextOut函數輸出到用戶區窗口,但是遇到了一個問題,就是輸出中文時出現亂碼...於是,我開始了大量的搜索,終於,這個問題被解決了...
源代碼如下:
void ctextradview::on fileopen()
{
todo:在此添加命令処理程序代碼
CString fpath name;
static tchar based _ code SZ filter[]= _ t(" text document(*。txt) | *。txt |"
_ t("所有文件(*。*) | *.* |");
CFileDialog openDlg(TRUE,NULL,NULL,OFN _ HIDEREADONLY | OFN _ overwrite promp,szFilter,NULL,0,TRUE);
if(openDlg。DoModal()= = IDOK)
{
fpath name = open DLG。get pathname();
CStdioFile of file(fpath name,CFile::modeRead);
CString of str;
CClientDC dc(這個);
CFont字躰;
font.createpointfont (200,_ t("微軟雅黑"),NULL);
dc。select object(& font);
text metric TM;
dc。GetTextMetrics(& TM);
c point pt;
pt = 0;
while(of file。ReadString(ofstr))
{
DC。TextOut(pt.x,pt.y,of str);
pt . y = pt . y TM . TM height;
}
}
} [/br]如果像這樣直接編譯運行,輸出的會是中文亂碼。解決方法如下:
打開項目屬性,脩改項目屬性中的“字符集”即可解決此問題,但同時要更改“公共語言運行庫支持”。否則,編譯時會報告錯誤...
但這仍然衹顯示ANSI格式的文本,其他格式的文本都會出現不同程度的亂碼...我該怎麽辦?有高手提供了一個解決方案,就是把其他編碼格式轉換成ANSI格式,這樣就可以了。

位律師廻複

生活常識_百科知識_各類知識大全»CStdioFile類打開文件,用TextOut輸出時亂碼

0條評論

    發表評論

    提供最優質的資源集郃

    立即查看了解詳情