📄 main.c
字号:
#include "main.h"#include <stdio.h>#include <stdlib.h>#include <pthread.h>#include <signal.h>#include "mainmenu.h"#include "status.h"#include "setdlg.h"#include "aboutdlg.h"#include "setserv.h"#include "loadsch.h"#include "setdsch.h"#include "setctrlsch.h"#include "setbsch.h"#include "setphsch.h"#include "sockclient.h"#include "softkb.h"HWND hMainWnd;HWND hIMEWnd;char serv_addr[16]; //server addrint serv_port=1088; //server portint sockfd=-1;struct sockaddr_in addr;char *st1;char *st2;BOOL belink; //是否联网模式pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; //定义状态读写互斥锁pthread_cond_t cond = PTHREAD_COND_INITIALIZER; //定义条件变量HWND hclient; //状态框句柄pthread_t get_status_id, set_status_id, get_cmd_id, conn_serv_id, ctrol_sys_id; //状态收集等子线程BITMAP bmp1;BITMAP bmp2;BITMAP bmp3;BITMAP bmp4;HWND bmp; int MainWinProc(HWND hwnd, int message, WPARAM wParam, LPARAM lParam){ HDC hdc; switch(message){ case MSG_CREATE: { LoadBitmap(HDC_SCREEN, &bmp1, "./image/bitmap.bmp"); LoadBitmap(HDC_SCREEN, &bmp2, "./image/bit1.bmp"); hclient=CurrentStatus(hwnd); strcpy(serv_addr, "192.168.2.250"); st1=(char*)malloc(8); memset(st1, '\0', 8); st2=(char*)malloc(8); memset(st2, '\0', 8); hIMEWnd = GBIMEWindow(hwnd); pthread_mutex_init(&mutex, NULL);//创建线程 if((pthread_create(&get_status_id, NULL, (void*)get_sys_status, NULL)) != 0) MessageBox(HWND_DESKTOP, "pthread_create_error", "keli", MB_OK); if((pthread_create(&set_status_id, NULL, (void*)set_sys_status, NULL)) != 0) MessageBox(HWND_DESKTOP, "pthread_create_error", "keli", MB_OK); if((pthread_create(&get_cmd_id, NULL, (void*)get_cmd, NULL)) != 0) MessageBox(HWND_DESKTOP, "pthread_create_error", "keli", MB_OK); signal(SIGPIPE, SIG_IGN); SetTimer(hwnd, 0, 3000); break; } case MSG_TIMER: break; case MSG_SERV_CHANGE: if(sockfd > 0) close(sockfd); initsocket(); break; case MSG_PAINT: break; case MSG_COMMAND: switch(wParam){ case IDM_SET_SCHEME: initsetdlg(hwnd); break; case IDM_ABOUT_SYS: initaboutdlg(hwnd); break; case IDM_SET_SERVER: setservdlg(hwnd); break; case IDM_LOAD_SCHEME: loadschdlg(hwnd); break; case IDM_SET_DAY: setdschdlg(hwnd); break; case IDM_SET_CTRL: setctrlschdlg(hwnd); break; case IDM_SET_BASE: setbschdlg(hwnd); break; case IDM_SET_PHR: setphschdlg(hwnd); break; } break; case MSG_CLOSE: KillTimer(hwnd,0); MiniGUIExtCleanUp (); if(sockfd > 0) close(sockfd); pthread_cancel(set_status_id); pthread_cancel(get_status_id); pthread_cancel(get_cmd_id); DestroyMainWindow(hwnd); PostQuitMessage(hwnd); return 0; } return DefaultMainWinProc(hwnd, message, wParam, lParam); }int MiniGUIMain(int argc, const char* argv[]){ HMENU mainmenu, submenu; MSG Msg; MAINWINCREATE CreateInfo; CreateInfo.dwStyle=WS_VISIBLE | WS_CAPTION ; CreateInfo.dwExStyle=WS_EX_NONE; CreateInfo.spCaption="keli-arm"; CreateInfo.hMenu=CreateMainMenu(mainmenu, submenu); CreateInfo.hCursor=GetSystemCursor(0); CreateInfo.hIcon=0; CreateInfo.MainWindowProc=MainWinProc; CreateInfo.lx=0; CreateInfo.ty=0; CreateInfo.rx=620; CreateInfo.by=460; CreateInfo.iBkColor=COLOR_lightwhite; CreateInfo.dwAddData=0; CreateInfo.hHosting=HWND_DESKTOP; hMainWnd=CreateMainWindow(&CreateInfo); if(hMainWnd==HWND_INVALID) return -1; ShowWindow(hMainWnd,SW_SHOWNORMAL); if (!InitMiniGUIExt()) { return 2; } while(GetMessage(&Msg, hMainWnd)){ TranslateMessage(&Msg); DispatchMessage(&Msg); } MainWindowThreadCleanup(hMainWnd); return 0;}#ifndef _MGRM_PROCESSES#include <minigui/dti.c>#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -