VS2019使用IUP跨平台界面库设置方法
要点一:创建桌面应用程序

要点二:去掉创建项目配带的全部代码,换上用IUP写的代码

要点三:附加上iup的include目录

要点四:可选多线程运行库生成release应用

要点五:附加IUP目录,即LIB目录。IUP没有单独的LIB目录。

要点六:附加IUP及其它需要的IUP的LIB,同时必须加上 comctl32.lib,IUP的lib会调用它。

要点七:IUP内部使用UTF8编码

要点八:宽字符转换UTF8字符后送给IUP

编译运行结果:

源代码
点击查看代码
#include "stdlib.h"
#include "locale.h"
#include "windows.h"
#include "iup.h"
int btn_exit_cb(Ihandle* self) {
IupMessage("IUP example", "Hello World!");
return IUP_DEFAULT;
}
char* toUTF8(const wchar_t* textString) {
static char utf8Buf[1024] = { 0 };
long utf8Size = 0;
utf8Size = WideCharToMultiByte(CP_UTF8, 0, textString, -1, NULL, 0, NULL, NULL);
utf8Size = WideCharToMultiByte(CP_UTF8, 0, textString, -1, utf8Buf, utf8Size, NULL, NULL);
return utf8Buf;
}
void initUI(int argc, char** argv) {
Ihandle* dlg, * lbl, * btn, * vbox, * spacer1, * spacer2;
IupOpen(&argc, &argv);
setlocale(LC_ALL, "zh_CN.UTF-8");
IupSetGlobal("UTF8MODE", "YES");
IupSetGlobal("UTF8MODE_FILE", "YES");
lbl = IupLabel(toUTF8(L"IUP是个易用的轻量级界面库"));
btn = IupButton(toUTF8(L"Click-点击"), NULL);
spacer1 = IupLabel("");
spacer2 = IupLabel("");
vbox = IupVbox(spacer1, lbl, spacer2, btn, NULL);
IupSetAttribute(vbox, "MARGIN", "15x15");
IupSetAttribute(vbox, "GAP", "10");
IupSetAttribute(vbox, "EXPAND", "BOTH");
IupSetAttribute(btn, "EXPAND", "HORIZONTAL");
IupSetAttribute(lbl, "EXPAND", "HORIZONTAL");
IupSetAttribute(lbl, "ALIGNMENT", "ACENTER");
dlg = IupDialog(vbox);
IupSetAttribute(dlg, "TITLE", "Hello World!");
IupSetAttribute(dlg, "RASTERSIZE", "600X300");
IupSetAttribute(dlg, "MINBOX", "YES");
IupSetAttribute(dlg, "MAXBOX", "YES");
IupSetCallback(btn, "ACTION", (Icallback)btn_exit_cb);
//char *ScreenSize = IupGetGlobal("FULLSIZE");
//IupMessage("IUP example", ScreenSize); //1920x1020
IupShowXY(dlg, IUP_CENTER, IUP_CENTER);
IupMainLoop();
IupClose();
}
int main(int argc, char** argv) {
initUI(argc, argv);
return EXIT_SUCCESS;
}

浙公网安备 33010602011771号