是一个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指针有问题. 谢谢大家!

解决方案 »

  1.   

    另一个问题是 owndraw的button空间. 怎么输出按钮文字. SetWindowText() 好像不行呀.
      

  2.   

    这个是rc文件 
    FONT 8, "Ms Shell Dlg 2"
    改为中文字体看看,在对话框属性里有设置。
      

  3.   

    在Resource里的对话框ID上右键属性看看语言是不是选简体中文
      

  4.   

    你用的是UNICODE吗?转化为ANSI就可以了。
      

  5.   

    如果你用的是vc6.0版本,
    在project-》setting 对话框中的Resources中的Language可以选择中文(中国)
      

  6.   

    你其实很聪明啊怀疑 pText指针有问题,就直接先用常量换量它试一下不就知道了
    或者在输出前加一句TRACE("%S\n",pText);
    pDC->DrawText(....)
      

  7.   

    我用的是vs2005 express 和 editrec 默认的就是中文的. 
    是ansi字符的.. 六楼的. 如果要unicode字符的那该怎么办呢 ? 
    是pText指针没错.但是我还是找不到问题所在..大家帮帮我. 谢谢!
      

  8.   

    VS2008中ALT+F7项目属性对话框中“配置属性”--》“常规”--》“字符集”--》“使用多字节字符集”