📄 timewindow.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 + -