panels.c

来自「MDE 图形引擎」· C语言 代码 · 共 1,458 行 · 第 1/4 页

C
1,458
字号
            break;          }          case IDC_CHBMPPATHBTM:          {            MessageBox(hDlg,"功能未考虑好是否该实现","控制面板",MB_OK);            break;          }          case IDC_FILECHOISE:          {            if(code != LBN_SELCHANGE) return 0;            i = SendDlgItemMessage(hDlg, IDC_FILECHOISE, LB_GETCURSEL, 0, 0);            if (i == -1) return 0;            SendDlgItemMessage(hDlg, IDC_FILECHOISE, LB_GETTEXT,                                i, (LPARAM)tempStr);            strcpy(bmpfile,bmppath);            strcat(bmpfile,"/");            strcat(bmpfile,tempStr);            LoadBitmap(HDC_SCREEN,&bgbitmap,bmpfile);            invrc.left = 220;            invrc.top = 45;            invrc.right = invrc.left + screenbitmap.bmWidth;            invrc.bottom = invrc.top + screenbitmap.bmHeight;            InvalidateRect(hDlg,&invrc,FALSE);            break;          }          case IDOK:          {            int i;            char temp[30];            if(SetValueToEtcFile(MINIGUI_CONFIG,                  "bgpicture","position",Eposition[bgposition])!=ETC_OK)            {              MessageBox(hDlg,"设置文件写入失败","控制面板",MB_OK| MB_ICONSTOP);              return 0;            }            for(i=0;i<10;i++)            {              sprintf(temp,"availPosition%d",i+1);              SetValueToEtcFile(MINIGUI_CONFIG,                  "bgpicture",temp,Eposition[i]);            }            i = SendDlgItemMessage(hDlg, IDC_FILECHOISE, LB_GETCURSEL, 0, 0);//            if (i == -1) return;            SendDlgItemMessage(hDlg, IDC_FILECHOISE, LB_GETTEXT,                                i, (LPARAM)tempStr);            if(SetValueToEtcFile(MINIGUI_CONFIG,                  "bitmapinfo","bgpicture",tempStr)!=ETC_OK)            {              MessageBox(hDlg,"设置文件写入失败","控制面板",MB_OK| MB_ICONSTOP);              return 0;            }            EndDialog(hDlg,IDOK);            break;          }        }      }    }    return DefaultDialogProc(hDlg, message, wParam, lParam);}int DisplayPanelDialog(HWND hWnd){    DlgDisplayPanelInfo.controls = CtrlDisplayPanelInfo;    return DialogBoxIndirectParam(&DlgDisplayPanelInfo, hWnd,                    DialogDisplayPanelProc, 0);}/************************ mouse panel dialog  *************************/#define IDC_CURLIST                   100#define IDC_CHCURPATHBTM              101#define IDC_CURPATHEDIT               102#define IDC_MOUSEDEVEDIT              103#define IDC_MOUSETYPEMBUTTON          104#define IDC_MOUSETIMEEDIT             105DLGTEMPLATE DlgMousePanelInfo ={    WS_BORDER|WS_CAPTION, WS_EX_NONE,    120, 40, 320, 400, "鼠标属性", 0, 0, 16, NULL};CTRLDATA CtrlMousePanelInfo [] ={    {  "static", WS_VISIBLE | SS_GROUPBOX | SS_LEFT,        10, 10, 300, 220, IDC_STATIC, "指针(仅供浏览)", 0 },    {  "static", WS_VISIBLE | SS_LEFT,        20, 32, 80, 20, IDC_STATIC, "指针列表", 0 },    {  "listbox", WS_VISIBLE | WS_TABSTOP | LBS_NOTIFY | WS_VSCROLL | WS_BORDER,        20, 55, 190, 100, IDC_CURLIST, NULL, 0 },    {  "static", WS_VISIBLE | SS_LEFT,        20, 175, 60, 20, IDC_STATIC, "指针路径", 0 },    {  "button", WS_VISIBLE | BS_PUSHLIKE | BS_CENTER ,        77, 170, 120, 22, IDC_CHCURPATHBTM, "选择指针图片路径", 0 },    {  "sledit", WS_VISIBLE | WS_TABSTOP | LBS_NOTIFY | WS_BORDER,        20, 200, 280, 22, IDC_CURPATHEDIT, "", 0 },    {  "static", WS_VISIBLE | SS_LEFT,        220, 32, 80, 20, IDC_STATIC, "预览(未实现)", 0 },    {  "static", WS_VISIBLE | SS_GROUPBOX | SS_LEFT,        10, 235, 300, 110, IDC_STATIC, "鼠标", 0 },    {  "static", WS_VISIBLE | SS_LEFT,        20, 260, 100, 20, IDC_STATIC, "鼠标设备", 0 },    {  "sledit", WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP ,        130, 255, 120, 22, IDC_MOUSEDEVEDIT, "", 0 },    {  "static", WS_VISIBLE | SS_LEFT,        20, 290, 100, 20, IDC_STATIC, "鼠标类型", 0 },    {  "menubutton", WS_CHILD | WS_VISIBLE | WS_TABSTOP,        130, 285, 120, 22, IDC_MOUSETYPEMBUTTON, "请选择鼠标类型", 0 },    {  "static", WS_VISIBLE | SS_LEFT,        20, 320, 100, 20, IDC_STATIC, "双击间隔时间", 0 },    {  "sledit", WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP ,        130, 315, 120, 22, IDC_MOUSETIMEEDIT, "", 0 },    {  "button", WS_VISIBLE | BS_PUSHLIKE | BS_CENTER ,        180, 354, 60, 22, IDOK, "确定", 0 },    {  "button", WS_VISIBLE | BS_PUSHLIKE | BS_CENTER ,        250, 354, 60, 22, IDCANCEL, "取消", 0 },};void ListCURFiles(HWND hDlg,char* path){    struct      dirent* pDirEnt;    DIR*        dir;    struct      stat ftype;    char        fullpath [PATH_MAX + 1];    SendDlgItemMessage (hDlg, IDC_CURLIST, LB_RESETCONTENT, 0, (LPARAM)0);    dir = opendir (path);    while ( (pDirEnt = readdir ( dir )) != NULL )    {        strncpy (fullpath, path, PATH_MAX);        strcat (fullpath, "/");        strcat (fullpath, pDirEnt->d_name);        if (lstat (fullpath, &ftype) < 0 )        {           Ping();           continue;        }        if (S_ISREG(ftype.st_mode))        {           SendDlgItemMessage (hDlg, IDC_CURLIST, LB_ADDSTRING,0,(LPARAM)pDirEnt->d_name);        }    }}static char *mouseType[]={  "Microsoft","MouseSystems","MMSeries","Logitech","Busmouse",  "PS2","MouseMan","Spaceball","IntelliMouse","None"};int Mp(char * mouse){  int i;  for(i=0;i<10;i++)    if (strcmp(mouse,mouseType[i])==0)      return i;  return -1;}static intDialogMousePanelProc(HWND hDlg, int message, WPARAM wParam, LPARAM lParam){    char tempStr[101];    static char curpath[PATH_MAX];    static int mousetype;    switch(message)    {      case MSG_INITDIALOG:      {          HWND hTmp;          MENUBUTTONITEM mbi;          int i;          mbi.data=0;          mbi.bmp=0;          //mouse type          hTmp = GetDlgItem(hDlg,IDC_MOUSETYPEMBUTTON);          for(i=0;i<10;i++)          {            mbi.text= mouseType[i];            SendMessage (hTmp, MBM_ADDITEM, -1, (LPARAM) &mbi);          }          if(GetValueFromEtcFile(MINIGUI_CONFIG,                  "system","mtype",tempStr,100)!=ETC_OK)          {            tempStr[0]=0;          }          else          {            tempStr[100]=0;            mousetype = Mp(tempStr);            SendMessage (hTmp,MBM_SETCURITEM,mousetype,0);          }          if(GetValueFromEtcFile(MINIGUI_CONFIG,                  "cursorinfo","cursorpath",curpath,100)!=ETC_OK)          {            curpath[0]=0;          };          curpath[100]=0;          hTmp = GetDlgItem(hDlg,IDC_CURPATHEDIT);          EnableWindow(hTmp,FALSE);          SetDlgItemText(hDlg,IDC_CURPATHEDIT,curpath);          ListCURFiles(hDlg,curpath);          if(GetValueFromEtcFile(MINIGUI_CONFIG,                  "system","mdev",tempStr,100)!=ETC_OK)          {            tempStr[0]=0;          };          tempStr[100]=0;          SetDlgItemText(hDlg,IDC_MOUSEDEVEDIT,tempStr);          if(GetValueFromEtcFile(MINIGUI_CONFIG,                  "mouse","dblclicktime",tempStr,100)!=ETC_OK)          {            tempStr[0]=0;          };          tempStr[100]=0;          SetDlgItemText(hDlg,IDC_MOUSETIMEEDIT,tempStr);      }      break;    case MSG_PAINT:    {    }    break;    case MSG_COMMAND:    {        int id   = LOWORD(wParam);        int code = HIWORD(wParam);        switch (id)        {          case IDC_MOUSETYPEMBUTTON:          {            if(code != MBN_CHANGED) return 0;            mousetype =  SendDlgItemMessage(hDlg,IDC_MOUSETYPEMBUTTON, MBM_GETCURITEM ,0,0);            break;          }          case IDC_CHCURPATHBTM:          {            MessageBox(hDlg,"功能未考虑好是否该实现","控制面板",MB_OK);            break;          }          case IDOK:          {            int i;            char temp[30];            if(SetValueToEtcFile(MINIGUI_CONFIG,                  "system","mtype",mouseType[mousetype])!=ETC_OK)            {              MessageBox(hDlg,"设置文件写入失败","控制面板",MB_OK| MB_ICONSTOP);              return 0;            }            for(i=0;i<10;i++)            {              sprintf(temp,"availMType%d",i+1);              SetValueToEtcFile(MINIGUI_CONFIG,                  "system",temp,mouseType[i]);            }            GetDlgItemText(hDlg,IDC_MOUSEDEVEDIT,tempStr,200),            tempStr[199]=0;            if(SetValueToEtcFile(MINIGUI_CONFIG,                  "system","mdev",tempStr)!=ETC_OK)            {              MessageBox(hDlg,"设置文件写入失败","控制面板",MB_OK| MB_ICONSTOP);              return 0;            }            GetDlgItemText(hDlg,IDC_MOUSETIMEEDIT,tempStr,200),            tempStr[199]=0;            if(SetValueToEtcFile(MINIGUI_CONFIG,                  "mouse","dblclicktime",tempStr)!=ETC_OK)            {              MessageBox(hDlg,"设置文件写入失败","控制面板",MB_OK| MB_ICONSTOP);              return 0;            }            EndDialog(hDlg,IDOK);            break;          }        }      }    }    return DefaultDialogProc(hDlg, message, wParam, lParam);}int MousePanelDialog(HWND hWnd){    DlgMousePanelInfo.controls = CtrlMousePanelInfo;    return DialogBoxIndirectParam(&DlgMousePanelInfo, hWnd,                    DialogMousePanelProc, 0);}/************************ app panel dialog  *************************/#define IDC_CHAPPPATHBTM              101#define IDC_APPPATHEDIT               102DLGTEMPLATE DlgAppPanelInfo ={    WS_BORDER|WS_CAPTION, WS_EX_NONE,    120, 40, 270, 350, "应用程序属性", 0, 0, 10, NULL};CTRLDATA CtrlAppPanelInfo [] ={    {  "static", WS_VISIBLE | SS_GROUPBOX | SS_LEFT,        10, 10, 250, 90, IDC_STATIC, "MINIGUI应用程序", 0 },    {  "static", WS_VISIBLE | SS_LEFT,        20, 40, 100, 20, IDC_STATIC, "应用程序路径", 0 },    {  "button", WS_VISIBLE | BS_PUSHLIKE | BS_CENTER ,        120, 35, 120, 22, IDC_CHAPPPATHBTM, "选择应用程序路径", 0 },    {  "sledit", WS_VISIBLE | WS_TABSTOP | LBS_NOTIFY | WS_BORDER,        20, 70, 230, 22, IDC_APPPATHEDIT, "", 0 },    {  "static", WS_VISIBLE | SS_GROUPBOX | SS_LEFT,        10, 100, 250, 50, IDC_STATIC, "VConGUI", 0 },    {  "static", WS_VISIBLE | SS_GROUPBOX | SS_LEFT,        10, 150, 250, 50, IDC_STATIC, "NoteBook", 0 },    {  "static", WS_VISIBLE | SS_GROUPBOX | SS_LEFT,        10, 200, 250, 50, IDC_STATIC, "bomb", 0 },    {  "static", WS_VISIBLE | SS_GROUPBOX | SS_LEFT,        10, 250, 250, 50, IDC_STATIC, "russia", 0 },    {  "button", WS_VISIBLE | BS_PUSHLIKE | BS_CENTER ,        130, 304, 60, 22, IDOK, "确定", 0 },    {  "button", WS_VISIBLE | BS_PUSHLIKE | BS_CENTER ,        200, 304, 60, 22, IDCANCEL, "取消", 0 },};static intDialogAppPanelProc(HWND hDlg, int message, WPARAM wParam, LPARAM lParam){    static char apppath[PATH_MAX];    switch(message)    {      case MSG_INITDIALOG:      {          HWND hTmp;          if(GetValueFromEtcFile(MINIGUI_CONFIG,                  "appinfo","apprespath",apppath,100)!=ETC_OK)          {            apppath[0]=0;          };          apppath[100]=0;          hTmp = GetDlgItem(hDlg,IDC_APPPATHEDIT);          EnableWindow(hTmp,FALSE);          SetDlgItemText(hDlg,IDC_APPPATHEDIT,apppath);      }      break;    case MSG_PAINT:    {    }    break;    case MSG_COMMAND:    {        int id   = LOWORD(wParam);        switch (id)

⌨️ 快捷键说明

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