📄 calling.c
字号:
#include <stdio.h>
#include <string.h>
#include <minigui/common.h>
#include <minigui/minigui.h>
#include <minigui/gdi.h>
#include <minigui/window.h>
#include <minigui/control.h>
#include "tel.h"
#include "call_time.h"
#include "../common.h"
#define IDC_CBUTTON_OK 0x1011
#define IDC_CBUTTON_CANCEL 0x1012
#define IDC_TIMER 0x1013
//static BITMAP bmp_bkgnd;
//static int timecount = 0;
FILE *COAfp;
FILE *CNAfp;
static int CallingDialogProc(HWND hWnd, int message, WPARAM wParam, LPARAM lParam)
{
HDC hdc;
time_t now;
char time_buf[50];
struct tm* timenow;
char *wday[]={"Sun", "Mon", "Tue" ,"Wed" ,"Thu" ,"Fri" ,"Sat"};
switch (message)
{
case MSG_CREATE:
CreateWindow(CTRL_BUTTON,
"接听",WS_CHILD | BS_PUSHBUTTON | WS_VISIBLE,
IDC_CBUTTON_OK,
60,42,60,25,
hWnd,
0);
CreateWindow(CTRL_BUTTON,
"拒绝",WS_CHILD | BS_PUSHBUTTON | WS_VISIBLE,
IDC_CBUTTON_CANCEL,
180,42,60,25,
hWnd,
0);
break;
case MSG_COMMAND:
switch(wParam)
{
case IDC_CBUTTON_OK:
CALL_NOCARRIER = 2;
printf("%d\n",SendNotifyMessage (MainWindow,MSG_RING_OK,0,0L));
//SendNotifyMessage (GetParent(hWnd),MSG_RING_OK,0,0L);
DestroyMainWindow (hWnd);
PostQuitMessage (hWnd);
break;
case IDC_CBUTTON_CANCEL:
if( CALL_ANS == 1 )
{
CALL_ANS = 0;
gprs_hold();
printf("%d\n",COAfp = fopen("data/okanswer.txt","a+"));
strcpy(CI.tel_number,tel_num);
time(&now);
timenow=localtime(&now);
printf("%d\n",timenow->tm_wday);
sprintf(time_buf,"%d-%d-%d %d:%d:%d %s",
timenow->tm_year+1900,timenow->tm_mon+1,timenow->tm_mday,
timenow->tm_hour,timenow->tm_min,timenow->tm_sec,wday[timenow->tm_wday]);
strcpy(CI.tel_time,time_buf);
printf("tel_time=%s",CI.tel_time);
fwrite(&CI, sizeof(_CALLINFO), 1, COAfp);
fclose(COAfp);
DestroyMainWindow (hWnd);
PostQuitMessage (hWnd);
}
break;
}
return 0;
case MSG_PAINT:
// printf ("BeginPaint.\n");
hdc = BeginPaint (hWnd);
TextOut(hdc,60,5,"来电");
TextOut(hdc,60,22,tel_num);
EndPaint (hWnd, hdc);
// printf ("EndPaint.\n");
return 0;
/* case MSG_ERASEBKGND:
hdc = GetClientDC (hWnd);
FillBoxWithBitmap (hdc,0, 0, 320, 200, &bmp_bkgnd);
ReleaseDC (hdc);
return 0;*/
case MSG_RING_HOLD: //未接电话(对方来电,对方挂断)
CALL_ANS = 0;
printf("%d\n",CNAfp = fopen("data/notanswer.txt","a+"));
strcpy(CI.tel_number,tel_num);
time(&now);
timenow=localtime(&now);
printf("%d\n",timenow->tm_wday);
sprintf(time_buf,"%d-%d-%d %d:%d:%d %s",
timenow->tm_year+1900,timenow->tm_mon+1,timenow->tm_mday,
timenow->tm_hour,timenow->tm_min,timenow->tm_sec,wday[timenow->tm_wday]);
strcpy(CI.tel_time,time_buf);
printf("tel_time=%s",CI.tel_time);
fwrite(&CI, sizeof(_CALLINFO), 1, CNAfp);
fclose(CNAfp);
DestroyMainWindow (hWnd);
PostQuitMessage (hWnd);
return 0;
case MSG_CLOSE:
//UnloadBitmap(&bmp_bkgnd);
DestroyMainWindow (hWnd);
PostQuitMessage (hWnd);
return 0;
}
return DefaultMainWinProc(hWnd, message, wParam, lParam);
}
int CallingDialog(HWND hWnd)
{
MSG Msg;
HWND hCLWnd;
MAINWINCREATE CreateInfo;
CreateInfo.dwStyle = WS_VISIBLE | WS_BORDER ;
CreateInfo.dwExStyle = WS_EX_TOPMOST;
CreateInfo.spCaption = "";
CreateInfo.hMenu = 0;
CreateInfo.hCursor = GetSystemCursor(0);
CreateInfo.hIcon = 0;
CreateInfo.MainWindowProc = CallingDialogProc;
CreateInfo.lx = 5;
CreateInfo.ty = 140;
CreateInfo.rx = 315;
CreateInfo.by = 215;
CreateInfo.iBkColor = COLOR_lightwhite;
CreateInfo.dwAddData = 0;
CreateInfo.hHosting = hWnd;
//LoadBitmap (HDC_SCREEN, &bmp_bkgnd, "bkgnd.jpg");
hCLWnd = CreateMainWindow (&CreateInfo);
hCallingWnd = hCLWnd;
if (hCLWnd == HWND_INVALID)
return -1;
ShowWindow(hCLWnd, SW_SHOWNORMAL);
while (GetMessage(&Msg, hCLWnd)) {
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
MainWindowThreadCleanup (hCLWnd);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -