⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 optiondialog.cpp

📁 monqueror一个很具有参考价值的源玛
💻 CPP
字号:
#include <stdio.h>#include <stdlib.h>#include <time.h>#include <string.h>#include <sys/time.h>#include <pthread.h>#include <semaphore.h>#include <sys/types.h>#include <sys/wait.h>#include <unistd.h>#include <pwd.h>#include <minigui/common.h>#include <minigui/minigui.h>#include <minigui/gdi.h>#include <minigui/window.h>#include <minigui/control.h>#include "../include/typedef.h"#include "main.h"#include "optiondialog.h"#define IDC_HOMEPAGE	3100#define IDC_PAGETOADD	3110#define IDC_ADD			3120#define IDC_PAGETODEL	3130#define IDC_DEL			3140///////////////////#define IDM_EXIT		4000#define IDM_DIALOG1		4001///////////////////extern MainWndAttr MainWndAttrib;DLGTEMPLATE DlgInputOption = {    WS_BORDER | WS_CAPTION,    WS_EX_IMECOMPOSE,    10, 10, 350, 170,    "Intenet 选项",    0, 0,    9, NULL,    0};CTRLDATA CtrlInputOption [] = {    {        "static",        WS_VISIBLE | SS_SIMPLE,        5, 5, 80, 15,        IDC_STATIC,         "缺省地址:",        0    },    {        "edit",        WS_VISIBLE | WS_BORDER | WS_TABSTOP,         5, 20, 155, 20,         IDC_HOMEPAGE,         NULL,        0    },    {        "static",        WS_VISIBLE | SS_SIMPLE,        5, 50, 85, 20,        IDC_STATIC,         "添加到收藏夹:",        0    },    {        "edit",        WS_VISIBLE | WS_BORDER | WS_TABSTOP,         5, 70, 155, 20,         IDC_PAGETOADD,         NULL,        0    },    {        "button",        WS_VISIBLE | BS_PUSHBUTTON | WS_TABSTOP,         163, 55, 17, 20,         IDC_ADD,         ">",        0     },	{        "listbox",         WS_VISIBLE | WS_BORDER |        WS_VSCROLL,         185, 5, 155, 135,		IDC_PAGETODEL,		NULL,		0	},    {        "button",        WS_VISIBLE | BS_PUSHBUTTON | WS_TABSTOP,         163, 80, 17, 20,         IDC_DEL,         "x",        0     },    {        "button",        WS_VISIBLE | BS_PUSHBUTTON | WS_TABSTOP,         30, 115, 45, 20,         IDOK,         "确定",        0     },    {        "button",        WS_VISIBLE | BS_PUSHBUTTON | WS_TABSTOP,        95, 115, 45, 20,         IDCANCEL,         "取消",         0    }};  int DialogInputOptionProc(HWND hDlg, int message, WPARAM wParam, LPARAM lParam){	static int pageNr = 0;	char homepage[MAX_PATH + 1];	char strConfFile[MAX_PATH + 1];	char strSiteNum[15];		int curSel, strlength;	int i;	switch (message) 	{		case MSG_INITDIALOG:			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);			SetDlgItemText(hDlg, IDC_HOMEPAGE, MainWndAttrib.strHomePage);			if(GetIntValueFromEtcFile(strConfFile, "favorate", "favoratenum", &pageNr) != ETC_OK)			{				pageNr = 0;			}			if (pageNr > FAVORATE_NUMBER)				pageNr = FAVORATE_NUMBER;			for(i = 0; i < pageNr; i++)			{        				SendMessage (GetDlgItem(hDlg,IDC_PAGETODEL), LB_ADDSTRING, 0, (LPARAM)MainWndAttrib.strGlobalMenu[i]);			}			return 1;		case MSG_COMMAND:			switch (wParam) 			{				case IDOK:					GetDlgItemText(hDlg, IDC_HOMEPAGE, homepage, MAX_PATH);					if(strlen(homepage) != 0)					{						free(MainWndAttrib.strHomePage);						MainWndAttrib.strHomePage = (char *)malloc(strlen(homepage) + 1);						memcpy(MainWndAttrib.strHomePage, homepage, strlen(homepage));						MainWndAttrib.strHomePage[strlen(homepage)] = '\0';					}					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);					for (i = 0; i < pageNr; i ++)					{						memset (strSiteNum, 0, 15);						sprintf(strSiteNum, "favorate%d", i+1);						SetValueToEtcFile(strConfFile, "favorate", strSiteNum, MainWndAttrib.strGlobalMenu[i]);					}					sprintf(strSiteNum, "%d", pageNr);					SetValueToEtcFile(strConfFile, "favorate", "favoratenum", strSiteNum);					SetValueToEtcFile(strConfFile, "homepage", "homepage", MainWndAttrib.strHomePage);					EndDialog(hDlg,1);					break;				case IDCANCEL:					EndDialog(hDlg, 0);					break;				case IDC_ADD:					GetDlgItemText(hDlg, IDC_PAGETOADD, homepage, MAX_PATH);					if (homepage[0] == 0)					{						MessageBox(hDlg, "Please enter pagename first!", "Error", MB_OK);						break;					}					if (pageNr == FAVORATE_NUMBER)					{						MessageBox(hDlg, "Too many pages!", "Error", MB_OK);						break;					}					SendMessage (GetDlgItem(hDlg, IDC_PAGETODEL), LB_ADDSTRING, 0, (LPARAM)homepage);										strlength = strlen(homepage);					MainWndAttrib.strGlobalMenu[pageNr] = (char *)malloc(strlength + 1);					memcpy(MainWndAttrib.strGlobalMenu[pageNr], homepage, strlength);					MainWndAttrib.strGlobalMenu[pageNr][strlength] = '\0';										pageNr++;					homepage[0] = 0;					SetDlgItemText(hDlg, IDC_PAGETOADD, homepage);					break;				case IDC_DEL:					curSel = SendMessage (GetDlgItem(hDlg,IDC_PAGETODEL ), LB_GETCURSEL, 0, 0);					if (curSel >= 0) 					{						if (MessageBox (hDlg, "Are you sure to delete this item?", "Page to delete",                             MB_YESNOCANCEL | MB_ICONQUESTION) == IDYES)						{							SendMessage (GetDlgItem(hDlg,IDC_PAGETODEL), LB_DELETESTRING, curSel, 0);							free(MainWndAttrib.strGlobalMenu[curSel]);							MainWndAttrib.strGlobalMenu[curSel] = (char *)malloc(											strlen(MainWndAttrib.strGlobalMenu[pageNr - 1] + 1));							memcpy(MainWndAttrib.strGlobalMenu[curSel], MainWndAttrib.strGlobalMenu[pageNr - 1],											strlen(MainWndAttrib.strGlobalMenu[pageNr - 1]));							MainWndAttrib.strGlobalMenu[curSel][strlen(MainWndAttrib.strGlobalMenu[pageNr - 1])] = '\0';							free(MainWndAttrib.strGlobalMenu[pageNr - 1]);							pageNr--;						}					}					else					{						MessageBox(hDlg, "select one page first!", "Error", MB_OK);						break;					}					break;			}	}    return DefaultDialogProc (hDlg, message, wParam, lParam);}////////////////////////////////////////////////////////////////////////HMENU createpmenudialogs (){    HMENU hmnu;    MENUITEMINFO mii;    memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING;    mii.id          = 0;    mii.typedata    = (DWORD)"Dialogs";    hmnu = CreatePopupMenu (&mii);        mii.type        = MFT_STRING ;    mii.state       = 0;    mii.id          = IDM_DIALOG1;    mii.typedata    = (DWORD)"Dialog1...";    InsertMenuItem(hmnu, 0, TRUE, &mii);	    mii.type        = MFT_STRING ;    mii.state       = 0;    mii.id          = IDM_EXIT;    mii.typedata    = (DWORD)"Exit...";    InsertMenuItem(hmnu, 1, TRUE, &mii);  	return hmnu;}void testDialogBox1 (HWND hWnd){    DlgInputOption.controls = CtrlInputOption;        DialogBoxIndirectParam (&DlgInputOption, hWnd, DialogInputOptionProc, 0L);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -