发新话题
打印

【求助】利用X Free86函数,实现中文显示的问题

【求助】利用X Free86函数,实现中文显示的问题

我的项目本地化,使用的图形化显示函数都是X11R6的库函数(X Free 86),我现在碰到了一个比较棘手的问题,所以求助。
8 x2 Q' D, U% _. {3 |      我需要显示纯文本内容,自己定义的结构体如下:
( @% Z0 J  w  I: [* T8 N' Mtypedef struct
, c) x( Q; f$ D* Y+ n: x7 S) q7 s2 x! A{! P2 E9 c1 m* S, M) k
  char    *pchLabel;         /* Label string for the panel                  */
7 G/ E7 w( h+ q  int      iTextPosition;    /* Text area starting position " n9 u; v8 u6 v
                                             (1 - 100) for default put 0                 */
3 _2 ]. I) o; Y( O4 D7 A( n* x3 J  TextType eTextType;        /* Text Data type - ceMixedCase, ceUpperCase,
9 q7 G! \+ y  D+ i6 j5 u                                              ceLowerCase          */3 O3 b! k/ r2 e
  int      iFieldLength;     /* Length of the text area                     */
8 x8 y6 P; n3 }; q8 j9 ?  int      iStringLength;    /* Length of the text string                   */
% Q- m5 J/ f) s& e  char    *pchText;          /* Contents to the text field                  */$ }2 ]% p3 v$ }% ?
  char    *pchUnits;         /* Units label                                 */
: }' k. k9 S8 Y; E7 _+ ~) U; V( Q  char    *pchDefault;       /* Default string i                            */4 t# y: w( Q  L! o2 \3 {
  unsigned uAttributes;      /* ceInsensitive | ceNoneditable | ceDefButton */4 C" z5 V% O2 ^8 v/ `1 h
  TextCB   callback;         /* Text field callback                         *// s0 q  l- T7 i6 r, K* M* U1 [" P8 }& Q
  void    *pvData;           /* Callback data                               */) }- F5 G/ d  B* M9 a$ _
} TextPanel;
3 o( n+ B- A9 `" {1 z0 H7 d
! q+ M5 a- Q  z. _pchLabel是显示标签名,而pchText是显示标签后的具体提示内容的,例如:0 T* [! f- C; i9 j" u- v( {2 r
  Wire Name:   LOOP WIRE
0 E) v5 N: u1 J. hpchLabel的数据是Wire Name: ,而pchText是 LOOP WIRE。
: ?# [  p, |# ?: ~/ p- E7 M2 S7 |5 k9 k1 k
现在,我们用来实现pchText的最终显示的函数实现语句是:% R% i9 z. M# Z
         _pchText( STRDUP( pchText ) ), -------> 赋值; A) O8 U  g1 m2 }) Q/ S
        .......# {8 c0 l8 g: U' ?" J
         XmTextFieldSetString (_widget, _pchText); --------->显示' D, s0 d8 u: j5 x' b2 K
即,将_pchText的数据信息显示 _widget上。
2 C, {3 E, s7 J! i8 O# y     现在的问题是,XmTextFieldSetString() 函数并不支持中文数据的显示。即如果
2 k/ m3 `/ x8 g' O8 a_pchText的数据是中文编码数据,则显示的将是乱码。我也曾尝试使用宽编码函数8 p2 F7 y- ^7 `  l& C$ v7 f
XmTextFieldSetStringWcs(),但还是不行,也可能是我使用方法的问题。
9 e, i" Q$ t7 J% P$ q- G/ F      不知道哪位大虾知道X Free 86下有什么相似的函数可以直接支持中文显示的??文本区域的数据中文显示!!; F, J) H7 @9 D- \# z; }
      万分感谢!!      

TOP

觉得和环境有关,而不是代码。      
上帝说,有问题,找GOOGLE 写程序是很神圣的事情!同样只是装系统,卖菜的大娘会的事情不见得就跟卖菜一样了。

TOP

转化为utf8试试,但我不知道xlib的函数是什么,我用的是GTK,GTK采用的是UTF8的字符集,用的函数是g_locale_to_utf8      
若不是因为风,雨不会美丽!

TOP

发新话题