找回密码
 注册
搜索
查看: 2090|回复: 3

字符集问题

[复制链接]
发表于 2013-7-12 20:36:34 | 显示全部楼层 |阅读模式
新版 大厅。在属性里显示名称错,字符没转换过来

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2013-7-13 11:38:31 | 显示全部楼层
大厅客户端资源:PublicDlg.cpp
1、函数:UserShowDlgProc(),绘制头像处更改为:
  1. g.DrawImage( g_pbmpUserFace, 280, 10, g_pbmpUserFace->GetWidth(), g_pbmpUserFace->GetHeight() );
复制代码
说明:主要是后面增加了宽度、高度。

2、载入头像函数更改为:(此处解决你论坛上有玩家报告不显示头像问题)
  1. void LoadFaceImage()
  2. {
  3.         wchar_t szFace[256];
  4.         if( g_nFaceItem != 99 )
  5.         {
  6.                 wsprintfW( szFace, L"Face%ld%02ld", g_pUserInfo->m_nSex ? 1 : 0, g_nFaceItem );
  7.         }
  8.         else
  9.         {        //自定的
  10.                 wsprintfW( szFace, L"Face999" );
  11.         }
  12.         Clean( 2 );
  13.         TCHAR szTemp[MAX_PATH];
  14.         ::GetCurrentDirectory( MAX_PATH, szTemp );
  15.         _tcscat_s( szTemp, L"\\UserShow.dll" );
  16.         HMODULE hModule = ::LoadLibrary( szTemp );
  17.         if( hModule )
  18.         {
  19.                 g_pbmpUserFace = LoadResImage( hModule, szFace, L"PNG" );
  20.                 if( NULL == g_pbmpUserFace )
  21.                 {
  22.                         g_pbmpUserFace = Gdiplus::Bitmap::FromResource( hModule, szFace );
  23.                 }
  24.                 ::FreeLibrary( hModule );
  25.         }
  26. }
复制代码
说明:主要是新版本将头像图片移到usershow.dll中,此处需要更换模块。

3、UserInfoDlgProc函数将
  1. ::SetWindowText( ::GetDlgItem( hWnd, IDC_EDIT_NAME ), g_pUserInfo->m_szName );
复制代码
更换为
  1.                 if(::IsWindowUnicode( ::GetParent( hWnd ) ) )
  2.                         ::SetWindowTextW( ::GetDlgItem( hWnd, IDC_EDIT_NAME ), g_pUserInfo->m_szName );
  3.                 else
  4.                         ::SetWindowTextA( ::GetDlgItem( hWnd, IDC_EDIT_NAME ), (char*)g_pUserInfo->m_szName );
复制代码
说明:新版本客户端(Unicode)与旧版本客户(Ansi)字符集不同造成原名称显示乱码。

4、UserFullDlgProc函数将
  1.    wsprintfA( g_lpszCmd, "  你好:%s[%ld],请输入卡号和密码进行充值财富或会员时间", g_pUserInfo->m_szName, g_pUserInfo->m_nUin );
  2.                         ::SetDlgItemTextA( hWnd, IDC_STATIC_WELCOME, g_lpszCmd );
复制代码
更换为:
  1.   if(::IsWindowUnicode( ::GetParent( hWnd ) ) )
  2.                 {
  3.                         wsprintf( (WCHAR*)g_lpszCmd, L"  你好:%s[%ld],请输入卡号和密码进行充值财富或会员时间", g_pUserInfo->m_szName, g_pUserInfo->m_nUin );
  4.                         ::SetDlgItemText( hWnd, IDC_STATIC_WELCOME, (WCHAR*)g_lpszCmd );
  5.                 }
  6.                 else
  7.                 {
  8.                         wsprintfA( g_lpszCmd, "  你好:%s[%ld],请输入卡号和密码进行充值财富或会员时间", g_pUserInfo->m_szName, g_pUserInfo->m_nUin );
  9.                         ::SetDlgItemTextA( hWnd, IDC_STATIC_WELCOME, g_lpszCmd );
  10.                 }
复制代码
5、SafeBoxDlgProc 参考  UserFullDlgProc 进行判断处理。
回复

使用道具 举报

 楼主| 发表于 2013-7-13 19:38:57 | 显示全部楼层
1:
g.DrawImage( g_pbmpUserFace, 280, 10 );更改为:g.DrawImage( g_pbmpUserFace, 280, 10, g_pbmpUserFace->GetWidth(), g_pbmpUserFace->GetHeight() );
2:
{
        wchar_t szFace[256];
        if( g_nFaceItem != 99 )
        {
                wsprintfW( szFace, L"Face%ld%02ld", g_pUserInfo->m_nSex ? 1 : 0, g_nFaceItem );
        }
        else
        {        //自定的
                wsprintfW( szFace, L"Face999" );
        }
        Clean( 2 );
        g_pbmpUserFace = LoadResImage( g_hModule, szFace, L"NG" );
        if( NULL == g_pbmpUserFace )
        {
                g_pbmpUserFace = Gdiplus::Bitmap::FromResource( g_hModule, szFace );
        }
}
更改为:
void LoadFaceImage()
{
        wchar_t szFace[256];
        if( g_nFaceItem != 99 )
        {
                wsprintfW( szFace, L"Face%ld%02ld", g_pUserInfo->m_nSex ? 1 : 0, g_nFaceItem );
        }
        else
        {        //自定的
                wsprintfW( szFace, L"Face999" );
        }
        Clean( 2 );
        TCHAR szTemp[MAX_PATH];
        ::GetCurrentDirectory( MAX_PATH, szTemp );
        _tcscat_s( szTemp, L"\\UserShow.dll" );
        HMODULE hModule = :oadLibrary( szTemp );
        if( hModule )
        {
                g_pbmpUserFace = LoadResImage( hModule, szFace, L"NG" );
                if( NULL == g_pbmpUserFace )
                {
                        g_pbmpUserFace = Gdiplus::Bitmap::FromResource( hModule, szFace );
                }
                ::FreeLibrary( hModule );
        }
}
回复

使用道具 举报

发表于 2013-7-14 17:30:57 | 显示全部楼层
光头大叔 加QQ 969542998 认识一下    江湖用户
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|宁德市腾云网络科技有限公司 ( 闽ICP备2022007940号-5|闽公网安备 35092202000206号 )

GMT+8, 2025-6-19 07:13 , Processed in 0.017011 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表