📄 mfm_gui.c
字号:
#include <stdio.h>
#include <minigui/common.h>
#include <minigui/minigui.h>
#include <minigui/gdi.h>
#include <minigui/window.h>
#include <minigui/control.h>
static HMENU CreatePMenuSystem (void)
{
HMENU hmnu;
MENUITEMINFO mii;
memset(&mii, 0, sizeof(MENUITEMINFO));
mii.type = MFT_STRING;
mii.id = 0;
mii.typedata = (DWORD)"System";
hmnu = CreatePopupMenu(&mii);
//memset(&mii, 0, sizeof(MENUITEMINFO));
mii.type = MFT_STRING;
mii.id = 1;
mii.typedata = (DWORD)"Flow Meter";
InsertMenuItem(hmnu, 0, TRUE, &mii);
//memset(&mii, 0, sizeof(MENUITEMINFO));
mii.type = MFT_STRING;
mii.id = 2;
mii.typedata = (DWORD)"Calibration";
InsertMenuItem(hmnu, 1, TRUE, &mii);
mii.type = MFT_STRING;
mii.id = 2;
mii.typedata = (DWORD)"Parameter";
InsertMenuItem(hmnu, 2, TRUE, &mii);
return hmnu;
}
static HMENU createmenu(void)
{
HMENU hmnu;
MENUITEMINFO mii;
hmnu = CreateMenu();
memset(&mii, 0, sizeof(MENUITEMINFO));
mii.type = MFT_STRING;
mii.id = 100;
mii.typedata = (DWORD)"Test";
InsertMenuItem(hmnu, 0, TRUE, &mii);
memset(&mii, 0, sizeof(MENUITEMINFO));
mii.type = MFT_STRING;
mii.id = 110;
mii.typedata = (DWORD)"Report";
//mii.checkedbmp = "\0.bmp";
InsertMenuItem(hmnu, 1, TRUE, &mii);
memset(&mii, 0, sizeof(MENUITEMINFO));
mii.type = MFT_STRING;
mii.id = 120;
mii.typedata = (DWORD)"System";
mii.hsubmenu = CreatePMenuSystem();
InsertMenuItem(hmnu, 2, TRUE, &mii);
memset(&mii, 0, sizeof(MENUITEMINFO));
mii.type = MFT_STRING;
mii.id = 130;
mii.typedata = (DWORD)"DCS";
InsertMenuItem (hmnu, 3, TRUE, &mii);
memset(&mii, 0, sizeof(MENUITEMINFO));
mii.type = MFT_STRING;
mii.id = 140;
mii.typedata = (DWORD)"Exit";
InsertMenuItem (hmnu, 4, TRUE, &mii);
return hmnu;
}
static int HelloWinProc(HWND hWnd, int message, WPARAM wParam, LPARAM lParam)
{
HDC hdc;
switch (message) {
case MSG_PAINT:
hdc = BeginPaint(hWnd);
TextOut (hdc, 60, 60, "Hello World!");
EndPaint (hWnd, hdc);
return 0;
case MSG_CLOSE:
DestroyMainWindow (hWnd);
PostQuitMessage (hWnd);
return 0;
}
return DefaultMainWinProc (hWnd, message, wParam, lParam);
}
int MiniGUIMain (int argc, const char* argv[])
{
MSG Msg;
HWND hMainWnd;
MAINWINCREATE CreateInfo;
#ifdef _MGRM_PROCESSES
JoinLayer(NAME_DEF_LAYER, "Hello world", 0, 0);
#endif;
CreateInfo.dwStyle = WS_VISIBLE | WS_BORDER | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_VSCROLL | WS_HSCROLL | WS_THINFRAME;//WS_THICKFRAME;
CreateInfo.dwExStyle = WS_EX_NONE;
CreateInfo.spCaption = "Multiphase Flow Meter";
CreateInfo.hMenu = createmenu();
CreateInfo.hCursor = GetSystemCursor(0);
CreateInfo.hIcon = 0;
CreateInfo.MainWindowProc = HelloWinProc;
CreateInfo.lx = 10;
CreateInfo.ty = 10;
CreateInfo.rx = 240;
CreateInfo.by = 180;
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;
}
#ifndef _MERM_PROCESSES
#include <minigui/dti.c>
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -