📄 menu.cpp
字号:
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <pwd.h>#include <unistd.h>#include <sys/types.h>#include <pthread.h>#include <semaphore.h>#include <minigui/common.h>#include <minigui/minigui.h>#include <minigui/gdi.h>#include <minigui/window.h>#include <minigui/control.h>#include "typedef.h"#include "main.h"#include "menu.h"HMENU createmenu(char ** strGlobalMenu){ HMENU hmnu; MENUITEMINFO mii; hmnu = CreateMenu(); memset (&mii, 0, sizeof(MENUITEMINFO)); // for menu file. mii.type = MFT_STRING; mii.id = 100; mii.typedata = (DWORD)"文件"; mii.hsubmenu = createpmenuFile (); InsertMenuItem(hmnu, 0, TRUE, &mii); mii.type = MFT_STRING; // for menu view. mii.id = 120; mii.typedata = (DWORD)"视图"; mii.hsubmenu = createpmenuview (); InsertMenuItem(hmnu, 1, TRUE, &mii); mii.type = MFT_STRING; // for menu site mii.id = 130; mii.typedata = (DWORD)"站点"; mii.hsubmenu = createpmenuFavorate (strGlobalMenu); InsertMenuItem(hmnu, 2, TRUE, &mii); mii.type = MFT_STRING; // for menu help mii.id = 140; mii.typedata = (DWORD)"帮助"; mii.hsubmenu = createpmenuAbout (); InsertMenuItem(hmnu, 3, TRUE, &mii); return hmnu;}HMENU createpmenuFavorate (char ** strGlobalMenu){ HMENU hmnu; // favorate id = IDM_FAVORATE + n MENUITEMINFO mii; char strConfFile[MAX_PATH + 1]; char strSiteNum[15]; char strSite[256]; int number, i, strlength; memset (&mii, 0, sizeof(MENUITEMINFO)); for ( i = 0 ; i < FAVORATE_NUMBER; i++) strGlobalMenu[i] = NULL; // open the config file to initialize the window. strncpy (strConfFile, getpwuid(getuid())->pw_dir, MAX_PATH); // read from configure file if (strConfFile[strlen(strConfFile) - 1] != '/') strncat(strConfFile, "/", MAX_PATH); strncat (strConfFile, ".", MAX_PATH); strncat (strConfFile, CONF_FILENAME, MAX_PATH); mii.type = MFT_STRING; // for menu "site" mii.id = 0; mii.typedata = (DWORD)"站点"; hmnu = CreatePopupMenu (&mii); if(GetIntValueFromEtcFile(strConfFile, "favorate", "favoratenum", &number) != ETC_OK) { return hmnu; } if (number > FAVORATE_NUMBER) number = FAVORATE_NUMBER; for (i = 0; i < number; i ++) { memset (strSiteNum, 0, 15); sprintf(strSiteNum, "favorate%d", i+1); if(GetValueFromEtcFile(strConfFile, "favorate", strSiteNum, strSite, 256) != ETC_OK) { return hmnu; } memset (&mii, 0, sizeof(MENUITEMINFO)); // for www.263.net mii.type = MFT_STRING ; mii.state = 0; mii.id = IDM_FAVORATE + i; strlength = strlen(strSite); strGlobalMenu[i] = (char *)malloc(strlength + 1); memcpy(strGlobalMenu[i], strSite, strlength); strGlobalMenu[i][strlength] = '\0'; mii.typedata = (DWORD)strGlobalMenu[i]; InsertMenuItem(hmnu, i + 1, TRUE, &mii); } return hmnu;}HMENU createpmenuFile (){ HMENU hmnu; MENUITEMINFO mii; memset (&mii, 0, sizeof(MENUITEMINFO)); mii.type = MFT_STRING; // for file head mii.id = 0; mii.typedata = (DWORD)"文件"; hmnu = CreatePopupMenu (&mii); mii.type = MFT_STRING; // for "file open" mii.state = 0; mii.id = IDM_OPEN; mii.typedata = (DWORD)"打开..."; InsertMenuItem(hmnu, 1, TRUE, &mii); mii.type = MFT_STRING; // for "file save" mii.state = 0; mii.id = IDM_SAVE; mii.typedata = (DWORD)"保存"; InsertMenuItem(hmnu, 2, TRUE, &mii); mii.type = MFT_STRING; // for "file save as" mii.state = 0; mii.id = IDM_SAVEAS; mii.typedata = (DWORD)"另存为..."; InsertMenuItem(hmnu, 3, TRUE, &mii); mii.type = MFT_SEPARATOR; // separator mii.state = 0; mii.id = 0; mii.typedata = 0; InsertMenuItem(hmnu, 4, TRUE, &mii); mii.type = MFT_STRING; // for "exit" mii.state = 0; mii.id = IDM_EXIT; mii.typedata = (DWORD)"退出"; InsertMenuItem(hmnu, 57, TRUE, &mii); return hmnu;} HMENU createpmenuAbout (){ HMENU hmnu; MENUITEMINFO mii; memset (&mii, 0, sizeof(MENUITEMINFO)); mii.type = MFT_STRING; mii.id = 0; mii.typedata = (DWORD)"关于"; hmnu = CreatePopupMenu (&mii); memset (&mii, 0, sizeof(MENUITEMINFO)); mii.type = MFT_STRING ; mii.state = 0; mii.id = IDM_ABOUT_THIS; mii.typedata = (DWORD)"关于 Monqueror..."; InsertMenuItem(hmnu, 0, TRUE, &mii); return hmnu;}HMENU createpmenuview (void){ HMENU hmnu; MENUITEMINFO mii; memset (&mii, 0, sizeof(MENUITEMINFO)); mii.type = MFT_STRING; mii.id = 0; mii.typedata = (DWORD)"视图"; hmnu = CreatePopupMenu (&mii); return hmnu;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -