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

📄 mytelephone.c

📁 MINIGUI简单的手机语音通讯程序
💻 C
字号:
#include "myTelephone.h"
#include <stdio.h>
#include <string.h>
#include <minigui/common.h>
#include <minigui/minigui.h>
#include <minigui/gdi.h>
#include <minigui/window.h>
#include <minigui/mywindows.h>
#include <minigui/control.h>
#include <minigui/dti.c>

#include "./gprs.h"
#include "./tty.h"

//设置语音通讯ID
#define IDM_MYSTATIC		111			// 输入号码
#define IDM_MYEDIT		110			// 文本框
#define	IDM_DIALOG		10			// 拨号
#define	IDM_CANCEL		11			// 取消
#define IDM_HOLD		12			// 挂断
#define	IDM_NO1			201			// 1
#define	IDM_NO2			202			// 2
#define	IDM_NO3			203			// 3
#define	IDM_NO4			204			// 4
#define	IDM_NO5			205			// 5
#define	IDM_NO6			206			// 6
#define	IDM_NO7			207			// 7
#define	IDM_NO8			208			// 8
#define	IDM_NO9			209			// 9
#define	IDM_NO0			200			// 0
#define	IDM_ASTERISK		13			// *
#define	IDM_SHARP		14			// #

static char buf[30] = {'\0'};
static char buffer[30] = {'\0'};
static HWND EDIT;
static int bufNo=0;

static int HelloWinProc(HWND hWnd, int message, WPARAM wParam, LPARAM lParam)
{
	switch (message) 
	{
		case MSG_CREATE:

			CreateWindow(	CTRL_STATIC,
					"请输入号码:",
					WS_VISIBLE | SS_CENTER,
					IDM_MYSTATIC,
					5,32.5,100,20,
					hWnd,
					0);

   		EDIT =  CreateWindow (	CTRL_EDIT,
					"",
					WS_VISIBLE | WS_BORDER,
					IDM_MYEDIT,
					100, 30, 170, 25,
					hWnd,
					0);

		        CreateWindow (	CTRL_BUTTON,			
					"Dialog",				
					WS_VISIBLE | SS_CENTER , 	
					IDM_DIALOG,			
					120, 80, 40, 25, 			
					hWnd,				
					0);
		        CreateWindow(	CTRL_BUTTON,			
					"Cancel",
					WS_VISIBLE | SS_CENTER , 		
					IDM_CANCEL,
					165, 80, 40, 25, 			
					hWnd,
					0);					
		        CreateWindow(	CTRL_BUTTON,			
					"Hold",
					WS_VISIBLE | SS_CENTER , 		
					IDM_HOLD,
					210, 80, 40, 25, 			
					hWnd,					
					0);

			CreateWindow (	CTRL_BUTTON,			
					"1",				
					WS_VISIBLE | SS_CENTER , 		
					IDM_NO1,
 					120, 110, 40, 20, 			
					hWnd,					
					0);
			CreateWindow ( 	CTRL_BUTTON,			
					"2",				
					WS_VISIBLE | SS_CENTER , 		
					IDM_NO2, 			
					165, 110, 40, 20, 			
					hWnd,					
					0);
			CreateWindow ( 	CTRL_BUTTON,			
					"3",					
					WS_VISIBLE | SS_CENTER , 		
					IDM_NO3, 			
					210, 110, 40, 20, 			
					hWnd,					
					0);
//4
			CreateWindow ( 	CTRL_BUTTON,			
					"4",					
					WS_VISIBLE | SS_CENTER , 		
					IDM_NO4, 			
					120, 133, 40, 20, 			
					hWnd,					
					0);
			CreateWindow ( 	CTRL_BUTTON,			
					"5",					
					WS_VISIBLE | SS_CENTER , 		
					IDM_NO5, 			
					165, 133, 40, 20, 			
					hWnd,					
					0);
			CreateWindow ( 	CTRL_BUTTON,			
					"6",					
					WS_VISIBLE | SS_CENTER , 		
					IDM_NO6,				
					210, 133, 40, 20, 			
					hWnd,					
					0);

			CreateWindow (	CTRL_BUTTON,			
					"7",					
					WS_VISIBLE | SS_CENTER , 		
					IDM_NO7,				
					120, 156, 40, 20, 			
					hWnd,					
					0);
			CreateWindow ( 	CTRL_BUTTON,			
					"8",					
					WS_VISIBLE | SS_CENTER , 		
					IDM_NO8, 			
					165, 156, 40, 20, 			
					hWnd,					
					0);
			CreateWindow ( 	CTRL_BUTTON,			
					"9",					
					WS_VISIBLE | SS_CENTER , 		
					IDM_NO9, 			
					210, 156, 40, 20, 			
					hWnd,					
					0);

			CreateWindow (	CTRL_BUTTON,			
					"*",					
					WS_VISIBLE | SS_CENTER , 		
					IDM_ASTERISK,	
					120, 179, 40, 20, 			
					hWnd,					
					0);
			CreateWindow (	CTRL_BUTTON,			
					"0",					
					WS_VISIBLE | SS_CENTER , 		
					IDM_NO0,				
					165, 179, 40, 20, 			
					hWnd,					
					0);
			CreateWindow ( 	CTRL_BUTTON,			
					"#",					
					WS_VISIBLE | SS_CENTER , 		
					IDM_SHARP, 			
					210, 179, 40, 20, 			
					hWnd,					
					0);
		break;

		case MSG_COMMAND:
			switch (wParam) 
			{

				case IDM_NO0:
					sprintf(buf, "%d", 0);
					GetWindowText(EDIT, buffer, 30);
					strcat(buffer, buf);
					SetWindowText(EDIT, buffer);
					bufNo++;
				break;
				
				case IDM_NO1:
					sprintf(buf, "%d", 1);
					GetWindowText(EDIT, buffer, 30);
					strcat(buffer, buf);
					SetWindowText(EDIT, buffer);
					bufNo++;
				break;

				case IDM_NO2:
					sprintf(buf, "%d", 2);
					GetWindowText(EDIT, buffer, 30);
					strcat(buffer, buf);
					SetWindowText(EDIT, buffer);
					bufNo++;
				break;

				case IDM_NO3:
					sprintf(buf, "%d", 3);
					GetWindowText(EDIT, buffer, 30);
					strcat(buffer, buf);
					SetWindowText(EDIT, buffer);
					bufNo++;
				break;

				case IDM_NO4:
					sprintf(buf, "%d", 4);
					GetWindowText(EDIT, buffer, 30);
					strcat(buffer, buf);
					SetWindowText(EDIT, buffer);
					bufNo++;
				break;

				case IDM_NO5:
					sprintf(buf, "%d", 5);
					GetWindowText(EDIT, buffer, 30);
					strcat(buffer, buf);
					SetWindowText(EDIT, buffer);
					bufNo++;
				break;

				case IDM_NO6:
					sprintf(buf, "%d", 6);
					GetWindowText(EDIT, buffer, 30);
					strcat(buffer, buf);
					SetWindowText(EDIT, buffer);
					bufNo++;
				break;

				case IDM_NO7:
					sprintf(buf, "%d", 7);
					GetWindowText(EDIT, buffer, 30);
					strcat(buffer, buf);
					SetWindowText(EDIT, buffer);
					bufNo++;
				break;

				case IDM_NO8:
					sprintf(buf, "%d", 8);
					GetWindowText(EDIT, buffer, 30);
					strcat(buffer, buf);
					SetWindowText(EDIT, buffer);
					bufNo++;
				break;

				case IDM_NO9:
					sprintf(buf, "%d", 9);
					GetWindowText(EDIT, buffer, 30);
					strcat(buffer, buf);
					SetWindowText(EDIT, buffer);
					bufNo++;
					
				break;

				case IDM_ASTERISK:
					sprintf(buf, "%c", '*');
					GetWindowText(EDIT, buffer, 30);
					strcat(buffer, buf);
					SetWindowText(EDIT, buffer);
					bufNo++;
				break;

				case IDM_SHARP:
					sprintf(buf, "%c", '#');
					GetWindowText(EDIT, buffer, 30);
					strcat(buffer, buf);
					SetWindowText(EDIT, buffer);
					bufNo++;
				break;

				case IDM_DIALOG:
					//拨打电话
					GetWindowText(EDIT, buffer, 30);
					tty_init();
					gprs_init();			
					gprs_call(buffer, strlen(buffer));
				break;
				
				case IDM_CANCEL:
					//删除号码
					bufNo--;
					buffer[bufNo] = '\0';
					SetWindowText(EDIT, buffer);
				break;
				
				case IDM_HOLD:
					//挂断电话
					gprs_hold();
					tty_end();				
				break;
			}
		break;

		case MSG_DESTROY:
			DestroyAllControls(hWnd);
		return 0;
		
		case MSG_CLOSE:
			DestroyMainWindow (hWnd);
			PostQuitMessage (hWnd);
		return 0;
    }
    return DefaultMainWinProc(hWnd, message, wParam, lParam);
}

int MiniGUIMain (int argc, const char* argv[])
{
	MSG Msg;
	MAINWINCREATE CreateInfo;
	HWND hMainWnd;

	CreateInfo.dwStyle = WS_VISIBLE | WS_BORDER | WS_CAPTION;
	CreateInfo.dwExStyle = WS_EX_NONE;
	CreateInfo.hMenu = 0;
	CreateInfo.spCaption = "语音通信系统";
	CreateInfo.hCursor = GetSystemCursor(0);
	CreateInfo.hIcon = 0;
	CreateInfo.MainWindowProc = HelloWinProc;
	CreateInfo.lx = 20;
	CreateInfo.ty = 20;
	CreateInfo.rx = 350;
	CreateInfo.by = 260;
	CreateInfo.iBkColor = GetWindowElementColor (BKC_CONTROL_DEF);
	CreateInfo.dwAddData = 0;
	CreateInfo.hHosting = HWND_DESKTOP;

	hMainWnd = CreateMainWindow (&CreateInfo);

	if (hMainWnd == HWND_INVALID)
	{
		return -1;
	}

	ShowWindow(hMainWnd, SW_SHOWNORMAL);

    	while (GetMessage(&Msg, hMainWnd)) 
	{
	        TranslateMessage(&Msg);
	        DispatchMessage(&Msg);
	}

	MainWindowThreadCleanup (hMainWnd);

	return 0;
}

⌨️ 快捷键说明

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