【求助】利用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; }
万分感谢!!