DrawText() 中英文都是乱码 和另一个问题

ufdxkm 2009-08-10 08:49:51

是一个CreateWindow 的 消息处理程序


switch(message)
{
case WM_INITDIALOG:
xScroll=GetSystemMetrics(SM_CXVSCROLL); //获得滚动条宽度

GetClientRect(hwnd,&rect); //窗口大小

hScroll=CreateWindow(TEXT("scrollbar"),NULL,
WS_CHILD|WS_VISIBLE|SBS_VERT,
(rect.right-rect.left)-xScroll,0,xScroll,rect.bottom-rect.top,hwnd,(HMENU)ID_SCROLL,hInst,NULL);
SetFocus(hwnd);


hResource=LoadResource(hInst, //获得文本句柄
FindResource(hInst,MAKEINTRESOURCE(IDR_TEXT1),
L"TEXT"
));
pText=(TCHAR*) LockResource( hResource //获得文本首字节指针
);



while(*pText != '\\' && *pText!='\0') //获得行数
{
if(*pText=='\n')
iNumLines++;

pText=CharNext(pText);
}
*pText='\0';


这个是WM_PAINT消息

case WM_PAINT: //输出文字
hdc=BeginPaint(hwnd,&pt);
pText = (TCHAR *) LockResource (hResource) ;

GetClientRect(hwnd,&rect);
rect.left+=2;
rect.top+=2;
DrawText(hdc,pText,-1,&rect,DT_EDITCONTROL | DT_WORDBREAK|DT_NOPREFIX);
EndPaint(hwnd,&pt);
return TRUE;



这个是rc文件

LANGUAGE LANG_CHINESE_SIMPLIFIED, SUBLANG_CHINESE_SIMPLIFIED
IDD_BUTTON2 DIALOG 0, 0, 193, 119
STYLE DS_3DLOOK | DS_CENTER | DS_SHELLFONT | WS_VISIBLE | WS_BORDER | WS_CAPTION | WS_DLGFRAME | WS_POPUP | WS_THICKFRAME | WS_SYSMENU
EXSTYLE WS_EX_WINDOWEDGE
CAPTION "Dialog"
FONT 8, "Ms Shell Dlg 2"
{
}


总是输出乱码.汇编学了基本的. 但是这个要是调试的话该怎么查找错误啊.
好像是pText指针有问题. 谢谢大家!
...全文
1022 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
HuWenjin 2009-08-11
  • 打赏
  • 举报
回复
你其实很聪明啊

怀疑 pText指针有问题,就直接先用常量换量它试一下不就知道了
或者在输出前加一句

TRACE("%S\n",pText);
pDC->DrawText(....)
ufdxkm 2009-08-11
  • 打赏
  • 举报
回复
我用的是vs2005 express 和 editrec 默认的就是中文的.
是ansi字符的.. 六楼的. 如果要unicode字符的那该怎么办呢 ?
是pText指针没错.但是我还是找不到问题所在..大家帮帮我. 谢谢!
zqlong_sunday 2009-08-11
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 tttyd 的回复:]
如果你用的是vc6.0版本,
在project-》setting 对话框中的Resources中的Language可以选择中文(中国)
[/Quote]
这样试试
ydyn1988 2009-08-11
  • 打赏
  • 举报
回复
不懂 学习
zyq5945 2009-08-11
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 eidolondedidi 的回复:]
我用的是vs2005 express 和 editrec 默认的就是中文的.
是ansi字符的.. 六楼的. 如果要unicode字符的那该怎么办呢 ?
是pText指针没错.但是我还是找不到问题所在..大家帮帮我. 谢谢!
[/Quote]
VS2008中ALT+F7项目属性对话框中“配置属性”--》“常规”--》“字符集”--》“使用多字节字符集”
雪影 2009-08-10
  • 打赏
  • 举报
回复
如果你用的是vc6.0版本,
在project-》setting 对话框中的Resources中的Language可以选择中文(中国)
西山小月 2009-08-10
  • 打赏
  • 举报
回复
你用的是UNICODE吗?转化为ANSI就可以了。
zyq5945 2009-08-10
  • 打赏
  • 举报
回复
在Resource里的对话框ID上右键属性看看语言是不是选简体中文
ufdxkm 2009-08-10
  • 打赏
  • 举报
回复
还是乱码
zyq5945 2009-08-10
  • 打赏
  • 举报
回复
这个是rc文件
FONT 8, "Ms Shell Dlg 2"
改为中文字体看看,在对话框属性里有设置。
ufdxkm 2009-08-10
  • 打赏
  • 举报
回复
是 控件 打错了
ufdxkm 2009-08-10
  • 打赏
  • 举报
回复
另一个问题是 owndraw的button空间. 怎么输出按钮文字. SetWindowText() 好像不行呀.

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧