MiniGUI标题栏显示中文

前言

在MiniGUI程序中有时候需要在标题栏显示中文,但是设置了中文却是乱码的,那么这篇文章会对你有帮助

步骤

1. 创建带标题栏的窗口

需要指定WS_CAPTION风格

int MiniGUIMain(int argc, const char* argv[])
{
    int i = 0;
    MSG Msg;
    HWND hMainWnd;
    MAINWINCREATE CreateInfo;

    CreateInfo.dwStyle          = WS_VISIBLE | WS_CAPTION;              //设置主窗口风格
    CreateInfo.dwExStyle        = WS_EX_AUTOSECONDARYDC;                //设置主窗口扩展风格
    CreateInfo.spCaption        = HELLO_CAPTION;                    	//设置主窗口标题
    CreateInfo.hMenu            = 0;                                    //设置主窗口菜单
    CreateInfo.hCursor          = GetSystemCursor(0);                   //设置主窗口光标系统为系统默认光标
    CreateInfo.hIcon            = 0;                                    //设置主窗口图标
    CreateInfo.MainWindowProc   = (WNDPROC)CvteAcitvityMainWinProc;     //设置主窗口函数,所有发往该窗口的消息有该函数处理
    CreateInfo.lx               = 0;                                    //设置主窗口位置: 左上角
    CreateInfo.ty               = 0;
    CreateInfo.rx               = 800;              			        //设置主窗口位置: 右下角
    CreateInfo.by               = 600;
    CreateInfo.iBkColor         = COLOR_lightwhite;                     //设置主窗口背景颜色
    CreateInfo.dwAddData        = 0;                                    //设置主窗口附加数据
    CreateInfo.hHosting         = HWND_DESKTOP;                         //设置主窗口的托管窗口为桌面

    hMainWnd = CreateMainWindow(&CreateInfo);
    if (hMainWnd == HWND_INVALID) {
        return -1;
    }
    ShowWindow(hMainWnd, SW_SHOWNORMAL);

    while (GetMessage(&Msg, hMainWnd)) {
        TranslateMessage(&Msg);
        DispatchMessage(&Msg);
    }

    MainWindowThreadCleanup(hMainWnd);
    return 0;
}

HELLO_CAPTION是另外一个头文件定义的宏

#define HELLO_CAPTION "这是中文标题"

需要注意的是,在Ubuntu系统中新建一个文件默认编码是UTF-8的,所以在新建好头文件并且编辑好汉字之后,在PC端执行以下命令,之后使用头文件gb2312.h,因为标题栏使用汉字的字体格式是GB2312的

iconv -f utf-8 -t gb2312 utf8.h -o gb2312.h

2. 修改配置文件

vim /usr/local/etc/MiniGUI.cfg

看到caption=4
[systemfont] font4编码格式从ISO8859-1改成GB2312
[rawbitmapfonts] 字段是加载的RBF字体的路径,因为是需要中文,所以设置好中文字体即可,需要保证设置的路径的字体存在

# The first system font must be a logical font using RBF device font.
[systemfont]
font_number=5
font0=rbf-FixedSys-rrncnn-8-16-ISO8859-1
font1=*-FixedSys-rrncnn-*-16-ISO8859-1
font2=*-Courier-rrncnn-*-16-ISO8859-1
font3=*-SansSerif-rrncnn-*-16-ISO8859-1
font4=*-System-rrncnn-*-16-GB2312

default=0
wchar_def=4
fixed=1
caption=4
menu=2
control=3

[rawbitmapfonts]
font_number=2
name0=rbf-fixed-rrncnn-16-16-GB2312-0                                
fontfile0=/usr/local/share/minigui/res/font/song-16-gb2312.bin
name1=rbf-fixed-rrncnn-12-12-GB2312-0
fontfile1=/usr/local/share/minigui/res/font/song-12-gb2312.bin

3. 效果

MiniGUI标题栏显示中文_第1张图片

你可能感兴趣的:(Linux,MiniGUI)