📄 setserv.c
字号:
#include "setserv.h"#include "softkb.h"#include <stdio.h>#include <stdlib.h>#include <fcntl.h>#include <unistd.h>#include <sys/types.h>#define MSG_SERV_CHANGE MSG_USER+1extern char serv_addr[16];extern int serv_port;DLGTEMPLATE setserver={ WS_BORDER | WS_CAPTION , WS_EX_NONE, 50,50,200,210, STR_SET_SERVER, 0,0,8,NULL, 0};CTRLDATA setservctrl[]={ { CTRL_STATIC, WS_VISIBLE | SS_SIMPLE, 10,10,80,20, IDC_STATIC_STR, STR_ADDR_AND_PORT, 0, WS_EX_NONE }, { CTRL_EDIT, WS_VISIBLE | SS_SIMPLE, 10,30,120,26, IDC_EDIT_ADDR, STR_ADDR, 0, WS_EX_NONE }, { CTRL_EDIT, WS_VISIBLE | SS_SIMPLE, 140,30,40,26, IDC_EDIT_PORT, STR_PORT, 0, WS_EX_NONE }, { CTRL_STATIC, WS_VISIBLE | SS_SIMPLE, 10,76,70,20, IDS_ADDR_NAME, STR_ADDRNAME, 0, WS_EX_NONE }, { CTRL_EDIT, WS_VISIBLE | SS_SIMPLE, 10,106,120,26, IDC_EDIT_ADDRNAME, STR_ADDRNAME, 0, WS_EX_NONE }, { CTRL_BUTTON, WS_TABSTOP | WS_VISIBLE | BS_DEFPUSHBUTTON, 150,106,40,26, IDB_IME, STR_IME, 0, WS_EX_NONE }, { CTRL_BUTTON, WS_TABSTOP | WS_VISIBLE | BS_DEFPUSHBUTTON, 40,150,40,26, IDOK, STR_IDOK, 0, WS_EX_NONE }, { CTRL_BUTTON, WS_VISIBLE | BS_DEFPUSHBUTTON, 100,150,40,26, IDCANCEL, STR_IDCANCEL, 0, WS_EX_NONE }};int setservproc(HWND hdlg, int message, WPARAM wParam, LPARAM lParam){ static int x_pos; static int y_pos; static HWND hime = NULL; switch(message){ case MSG_INITDIALOG: { int file = open("addrname", O_CREAT | O_RDONLY, 0600); char name[18]; memset(name, 0, 18); int n = read(file, name, 18); if( n != 18 ) SetDlgItemText(hdlg, IDC_EDIT_ADDRNAME, STR_NODEF); else SetDlgItemText(hdlg, IDC_EDIT_ADDRNAME, name); close(file); return 1; } case MSG_LBUTTONDOWN: x_pos = LOSWORD(lParam); y_pos = HISWORD(lParam); ClientToScreen(hdlg, &x_pos, &y_pos); break; case MSG_COMMAND: switch(wParam){ case IDB_IME: if( hime == NULL) hime = NovaSKBWindow(hdlg, x_pos, y_pos); else if( IsWindowVisible(hime) ) ShowWindow(hime, SW_HIDE); else { ShowWindow(hime, SW_SHOW); MoveWindow(hime, x_pos, y_pos, 248, 98, TRUE); } break; case IDOK: { HWND hwnd=GetDlgItem(hdlg, IDC_EDIT_ADDR); GetWindowText(hwnd, serv_addr, 15); serv_addr[15]='\0'; //MessageBox(NULL, serv_addr, "aa", MB_OK); char port[5]; hwnd=GetDlgItem(hdlg, IDC_EDIT_PORT); GetWindowText(hwnd, port, 4); port[4]='\0'; serv_port=atoi(port); hwnd=GetHosting(hdlg); char addrname[18]; GetDlgItemText(hdlg, IDC_EDIT_ADDRNAME, addrname, 18); int file = open("addrname", O_CREAT | O_WRONLY | O_TRUNC, 0600); write(file, addrname, 18); close(file); SendMessage(hwnd, MSG_SERV_CHANGE, (WPARAM)serv_addr, (LPARAM)serv_port); } case IDCANCEL: hime = NULL; EndDialog(hdlg, wParam); break; } break; } return DefaultDialogProc(hdlg, message, wParam, lParam);}void setservdlg(HWND hparent){ setserver.controls=setservctrl; DialogBoxIndirectParam(&setserver, hparent, setservproc, 0L);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -