Minigui嵌入式程序.docx
《Minigui嵌入式程序.docx》由会员分享,可在线阅读,更多相关《Minigui嵌入式程序.docx(8页珍藏版)》请在冰豆网上搜索。
Minigui嵌入式程序
Minigui嵌入式程序开发
#include
#include
此部分代码为程序包含的头文件
#include
#include
#include
#include
#include
#include
#defineIDC_CFILE101
#defineIDC_PUTOUTFILE102
#defineIDC_OPPTIONS103
#defineIDC_YUAN104
#defineIDC_MUBIAO105#defineIDC_OK113#defineIDC_CANCLE114#defineIDC_YUANXUANZETREE150
HWNDhWnd;
此部分代码为定义程序各个控件和窗口的句柄,例如101代表的是IDC_CFILE,也就是代表Cfile这个静态框的句柄。
HWNDhDlg;
staticDLGTEMPLATEDlgbianyi=
{
此部分代码为minigui编译小程序的窗口控件定义
WS_BORDER|WS_CAPTION,
WS_EX_NONE,
0,0,320,200,
"MINIGUI编译小程序",
0,0,10,NULL,
0
};
staticCTRLDATACtrlbianyi[]={{"static",
WS_VISIBLE,
此部分代码为minigui编译小程序的窗口中各个控件的定义语句,按控件头文件的定义,分别是控件类型,控件参数,控件坐标大小,控件句柄,控件内容
10,10,50,20,
IDC_STATIC,
"Cfile:
",
0
},
{
"static",
WS_VISIBLE,
10,50,70,20,
IDC_STATIC,
"Putoutfile:
",
0
},
{
"sledit",
WS_VISIBLE|WS_TABSTOP,
70,10,200,20,
IDC_CFILE,
"",
此部分代码为minigui编译小程序的窗口中各个控件的定义语句,按控件头文件的定义,分别是控件类型,控件参数,控件坐标大小,控件句柄,控件内容
0
},
{
"sledit",
WS_VISIBLE|WS_TABSTOP,
70,50,200,20,
IDC_PUTOUTFILE,
"",
0
},
{
"static",
WS_VISIBLE,
10,90,70,20,
IDC_STATIC,
"Opptions:
",
0
},
{
此部分代码为minigui编译小程序的窗口中各个控件的定义语句,按控件头文件的定义,分别是控件类型,控件参数,控件坐标大小,控件句柄,控件内容
"sledit",
WS_VISIBLE,
70,90,200,20,
IDC_OPPTIONS,
"-lpthread-lminigui-ljpeg-lpng-lz",
0
},
{
"button",
WS_VISIBLE|BS_DEFPUSHBUTTON|
WS_TABSTOP|WS_GROUP,
10,130,70,30,
IDOK,
"OK",
0
},{
"button",
WS_VISIBLE|BS_DEFPUSHBUTTON|
WS_GROUP,
280,7,29,29,
IDC_YUAN,
">",
此部分代码为minigui编译小程序的窗口中各个控件的定义语句,按控件头文件的定义,分别是控件类型,控件参数,控件坐标大小,控件句柄,控件内容
0
},{
"button",
WS_VISIBLE|BS_DEFPUSHBUTTON|
WS_GROUP,
280,47,29,29,
IDC_MUBIAO,
">",
0
},
{
"button",
WS_VISIBLE|BS_PUSHBUTTON|
WS_TABSTOP,
(270-70),130,70,30,
IDCANCEL,
"EXIT",
此部分代码为minigui编译小程序的窗口中各个控件的定义语句,按控件头文件的定义,分别是控件类型,控件参数,控件坐标大小,控件句柄,控件内容
0
},
};
staticCTRLDATACtrlyuanxuanze[]=
{
{
"static",
WS_VISIBLE,
10,10,50,20,
IDC_YUANXUANZETREE,
"",
0
},
};
staticintDialogYuanxuanze(HWNDhyxz,intmessage,WPARAMwParam,LPARAMlParam)
{
}
staticvoidInitDialogbox(HWNDhWnd)
{Dlgbianyi.controls=Ctrlyuanxuanze;
DialogBoxIndirectParam(&Dlgyuanxuanze,hWnd,DialogYuanxuanze,0L);
}
staticintDialogbianyi(HWNDhDlg,intmessage,WPARAMwParam,LPARAMlParam)
{
charout[300]="gcc-o";
charcfile[50];
此部分代码为minigui编译小程序主窗口主程序代码,分别是定义数组和处理事件消息机制
charputoutfile[50];
charopptions[50];
charfile[300]="nautils";
switch(message)
{
caseMSG_COMMAND:
switch(wParam)
{
caseIDC_YUAN:
InitDialogbox(hWnd);
break;
caseIDOK:
{
GetWindowText(GetDlgItem(hDlg,IDC_CFILE),cfile,40);
GetWindowText(GetDlgItem(hDlg,IDC_PUTOUTFILE),putoutfile,40);
GetWindowText(GetDlgItem(hDlg,IDC_OPPTIONS),opptions,40);
strcat(out,putoutfile);
strcat(out,"");
此部分代码为获取文本框内容以及拼合编译语句核心代码
strcat(out,cfile);
strcat(out,"");
strcat(out,opptions);
strcat(file,putoutfile);
system(out);
system(file);
}
break;
caseIDCANCEL:
EndDialog(hDlg,wParam);
break;
}
break;
}
returnDefaultDialogProc(hDlg,message,wParam,lParam);
}
intMiniGUIMain(intargc,constchar*argv[])
{
Dlgbianyi.controls=Ctrlbianyi;
DialogBoxIndirectParam(&Dlgbianyi,HWND_DESKTOP,Dialogbianyi,0L);
return0;
}
#ifndef_LITE_VERSION
#include
#endif
四、