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

📄 timewindow.c

📁 基于minigui的手机程序开发 实现电话拨打功能
💻 C
字号:
#include"comm.h"
#include<string.h>
#include<time.h>
#define IDC_BUTTON 300
#define IDC_C      217
#define _ID_TIMER_Clock    219
 char callName[20];
 char callTelnumber[20]; 
HWND hwnd_TimeWin;
int n=0;
char buf[20]="0";
int w=0;
int hour=0;
int min=0;
int sec=0;
static void callback_button(HWND hwnd, int id, int nc, DWORD add_data)
{
  
if((nc==BN_CLICKED)&&(id==IDC_BUTTON))
	{
     
         	gprs_hold();//挂断电话
			w=0;//计时器清0
			hour=0;
			min=0;
			sec=0;
			KillTimer(hwnd_TimeWin,_ID_TIMER_Clock);//关闭计时器
		    SendMessage(hwnd_TimeWin,MSG_CLOSE,0,0);//关闭窗口
            
			
           
     }

	 
	
     
  

}

static int SecondWinProc(HWND hWnd, int message, WPARAM wParam, LPARAM lParam)
{
	  
	HWND hwnd_button;
	HWND hwnd_SLEDIT;
    switch(message) {
    		case MSG_CREATE:            
    SetTimer(hWnd,_ID_TIMER_Clock,100);//设置计时器的步频为100毫秒即1秒
	hwnd_button = CreateWindow (
			   CTRL_BUTTON,
			   "挂断",
			   WS_CHILD | BS_PUSHBUTTON  | WS_VISIBLE|BS_NOTIFY,
			   IDC_BUTTON,
			   130, 130, 50, 25, 
			   hWnd, 
			   0);
	hwnd_SLEDIT = CreateWindow (
		CTRL_SLEDIT,
		"",
		WS_VISIBLE | WS_BORDER,
		IDC_C,
		100, 70,80, 30,
		hWnd,
		0
		
		);
		SetNotificationCallback(hwnd_button,callback_button);
       
        break;  
	
	case MSG_TIMER:
		{
			
			if(wParam==_ID_TIMER_Clock)
				
			
			{  
				w++;
				hour=w/3600;
				min=(w/60)%60;
				sec=w%60;
				sprintf(buf,"%d:%d:%d",hour,min,sec);
				
			    SetDlgItemText (hWnd, IDC_C, buf);
			
			}
		
			
			
		}

        break;
	
	case MSG_PAINT:
	    { 
		  HDC hdc;
		  hdc = BeginPaint(hWnd);
		  SetBkColor(hdc,PIXEL_yellow);
		  SetTextColor(hdc,PIXEL_blue);
		  TextOut(hdc,10,10,"姓名:");
		  TextOut(hdc,10,30,"电话:");
		  TextOut(hdc,10,50,"通话中.....");
          TextOut(hdc,50,10,callName);
		  TextOut(hdc,50,30,callTelnumber);
		  TextOut(hdc,10,80,"通话时间: ");
		  EndPaint(hWnd,hdc);
	
	    }
		break;

	  case MSG_COMMAND:

		  break;
      case MSG_CLOSE:
		 
      DestroyMainWindow (hWnd); 
      PostQuitMessage (hWnd); 
      return 0;
    }
    return DefaultMainWinProc(hWnd, message, wParam, lParam); 
}
int timeWindow(char telnumber[20])//计时窗口
{   
	char * name;
    name=findData(telnumber);//根据电话号查找姓名
	 if(name==NULL)
		strcpy(callName,"陌生人");
	else 
		strcpy(callName,name);
 
    strcpy(callTelnumber,telnumber);
    MSG Msg; //定义消息变量
    HWND hMainWnd; //定义句柄
    MAINWINCREATE CreateInfo;//定义窗口信息的结构体变量 CreateInfo
    CreateInfo.dwStyle = WS_VISIBLE | WS_BORDER | WS_CAPTION;//窗口风格
    CreateInfo.dwExStyle = WS_EX_NONE;//窗口的附加风格
    CreateInfo.spCaption = "通话中...";//窗口的标题
    CreateInfo.hMenu = 0;//窗口上的菜单句柄
    CreateInfo.hCursor = GetSystemCursor(0);//在窗口中所使用的鼠标光标句柄
    CreateInfo.hIcon = 0;//程序的图标
    CreateInfo.MainWindowProc = SecondWinProc;//该窗口的消息处理函数指针
    CreateInfo.lx = 0;//窗口左上角相对屏幕的绝对横坐标,以象素点表示
    CreateInfo.ty = 0;//窗口左上角相对屏幕的绝对纵坐标,以象素点表示
    CreateInfo.rx = 300;//窗口右下角相对屏幕的绝对横坐标,以象素点表示
    CreateInfo.by = 200;//窗口右下角相对屏幕的绝对纵坐标,以象素点表示
    CreateInfo.iBkColor = COLOR_black;//窗口背景颜色
    CreateInfo.dwAddData = 0;//附带给窗口的一个 32 位值
    CreateInfo.hHosting = HWND_DESKTOP;  //窗口消息队列的托管窗口
    hMainWnd = CreateMainWindow (&CreateInfo); //创建窗口 
    hwnd_TimeWin= hMainWnd;
    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 + -