+ -
当前位置:首页 → 问答吧 → 【求助】利用X Free86函数,实现文本区域的中文显示的问题

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

时间:2007-01-08

来源:互联网

我的项目本地化,使用的图形化显示函数都是X11R6的库函数(X Free 86),我现在碰到了一个比较棘手的问题,所以求助。
         我需要显示纯文本内容,自己定义的结构体如下:
   typedef struct
   {
     char    *pchLabel;      /* Label string for the panel                  */
     int      iTextPosition;  /* Text area starting position(1 - 100) for default0       */
     TextType eTextType;/*Text Data type-ceMixedCase, ceUpperCase...*/
     int      iFieldLength;     /* Length of the text area                     */
     int      iStringLength;    /* Length of the text string                   */
     char    *pchText;          /* Contents to the text field                  */
     char    *pchUnits;         /* Units label                                 */
     char    *pchDefault;       /* Default string i                            */
     unsigned uAttributes;      /* ceInsensitive | ceNoneditable | ceDefButton */
     TextCB   callback;         /* Text field callback                         */
     void    *pvData;           /* Callback data                               */
   } TextPanel;
   
   pchLabel是显示标签名,而pchText是显示标签后的具体提示内容的,例如:
     Wire Name:   LOOP WIRE
   pchLabel的数据是Wire Name: ,而pchText是 LOOP WIRE。
   
   现在,我们用来实现pchText的最终显示的函数实现语句是:
            _pchText( STRDUP( pchText ) ), -------> 赋值
           .......
            XmTextFieldSetString (_widget, _pchText); --------->显示
   即,将_pchText的数据信息显示 _widget上。
        现在的问题是,XmTextFieldSetString() 函数并不支持中文数据的显示。即如果
   _pchText的数据是中文编码数据,则显示的将是乱码。我也曾尝试使用宽编码函数
   XmTextFieldSetStringWcs(),但还是不行,也可能是我使用方法的问题。
         不知道哪位大虾知道X Free 86下有什么相似的函数可以直接支持中文显示的??文本区域的数据中文显示!!
         万分感谢!!      

作者: 名城古镇   发布时间: 2007-01-08

xlib应该不能直接支持cjk

需要其他的引擎处理后才可以      

作者: AIKO_sex   发布时间: 2007-01-09