newmessage.c
来自「minigui PDA系统 可实现手机功能」· C语言 代码 · 共 397 行
C
397 行
#ifndef _newMSG_C
#define _newMSG_C
#include "msgCom.h"
#include "message.h"
#include "fileMessage.h"
#include "../mybuttonreg.h"
#include "../telbook/telbook.h"
#define IDC_NMST_NUM 0X1007#define IDC_NMSTXT_NUM 0X1008#define IDC_NMBUT_NUM 0X1009#define IDC_NMMTXT_TXT 0X1010#define IDC_NMBUT_SEND 0X1011#define IDC_NMBUT_SAVE 0X1012#define IDC_NMBUT_CANCEL 0X1013#define MY_ES_DIGIT_ONLY 0x0001
BITMAP jpg_bkgnd_NM;
static BITMAP al_pushed;
static BITMAP al_unpushed;
static BITMAP al_mousemove;
static BITMAP send_pushed;
static BITMAP send_unpushed;
static BITMAP send_mousemove;
static BITMAP save_pushed;
static BITMAP save_unpushed;
static BITMAP save_mousemove;
static BITMAP cancel_pushed;
static BITMAP cancel_unpushed;
static BITMAP cancel_mousemove;
HWND NMhWnd;//窗口句柄
HWND STXThWnd,MTXThWnd;
HWND hCtrl_al;
HWND hCtrl_send;
HWND hCtrl_save;
HWND hCtrl_cancel;
/*static void emLoadBitmap()
{
LoadBitmap (HDC_SCREEN, &al_pushed, "image/button/msg_al_pushed.jpg");
LoadBitmap (HDC_SCREEN, &al_unpushed, "image/button/msg_al_unpushed.jpg");
LoadBitmap (HDC_SCREEN, &al_mousemove, "image/button/msg_al_mousemove.jpg");
LoadBitmap (HDC_SCREEN, &send_pushed, "image/button/msg_send_pushed.jpg");
LoadBitmap (HDC_SCREEN, &send_unpushed, "image/button/msg_send_unpushed.jpg");
LoadBitmap (HDC_SCREEN, &send_mousemove, "image/button/msg_send_mousemove.jpg");
LoadBitmap (HDC_SCREEN, &save_pushed, "image/button/msg_save_pushed.jpg");
LoadBitmap (HDC_SCREEN, &save_unpushed, "image/button/msg_save_unpushed.jpg");
LoadBitmap (HDC_SCREEN, &save_mousemove, "image/button/msg_save_mousemove.jpg");
LoadBitmap (HDC_SCREEN, &cancel_pushed, "image/button/msg_cancel_pushed.jpg");
LoadBitmap (HDC_SCREEN, &cancel_unpushed, "image/button/msg_cancel_unpushed.jpg");
LoadBitmap (HDC_SCREEN, &cancel_mousemove, "image/button/msg_cancel_mousemove.jpg");
}
static void emUnLoadBitmap()
{
UnloadBitmap (&al_pushed);
UnloadBitmap (&al_unpushed);
UnloadBitmap (&al_mousemove);
UnloadBitmap (&send_pushed);
UnloadBitmap (&send_unpushed);
UnloadBitmap (&send_mousemove);
UnloadBitmap (&save_pushed);
UnloadBitmap (&save_unpushed);
UnloadBitmap (&save_mousemove);
UnloadBitmap (&cancel_pushed);
UnloadBitmap (&cancel_unpushed);
UnloadBitmap (&cancel_mousemove);
}
*/
///////////////////////新信息/////////////////////////////////////////////
static void nm_notify_proc (HWND hwnd, int id, int nc, DWORD add_data)
{
if ( hwnd == hCtrl_al&& nc == MYBUTTON_PUSHED)
{
SetWindowAdditionalData(hwnd, (DWORD)&al_pushed);
}
if ( hwnd == hCtrl_al && nc == BN_CLICKED&&id==IDC_NMBUT_NUM)
{
//SetWindowAdditionalData(hwnd, (DWORD)&al_unpushed);
SendNotifyMessage(NMhWnd,IDC_NMBUT_NUM,0,0);
}
if( hwnd == hCtrl_al && nc == MYBUTTON_MOUSEMOVE)
{
SetWindowAdditionalData(hwnd, (DWORD)&al_mousemove);
}
//-----------------------------------------------------------
if ( hwnd == hCtrl_send&& nc == MYBUTTON_PUSHED)
{
SetWindowAdditionalData(hwnd, (DWORD)&send_pushed);
}
if ( hwnd == hCtrl_send && nc == BN_CLICKED&&id==IDC_NMBUT_SEND)
{
//SetWindowAdditionalData(hwnd, (DWORD)&send_unpushed);
SendNotifyMessage(NMhWnd,IDC_NMBUT_SEND,0,0);
}
if( hwnd == hCtrl_send && nc == MYBUTTON_MOUSEMOVE)
{
SetWindowAdditionalData(hwnd, (DWORD)&send_mousemove );
}
//-----------------------------------------------------------------------
if ( hwnd == hCtrl_save&& nc == MYBUTTON_PUSHED)
{
SetWindowAdditionalData(hwnd, (DWORD)&save_pushed);
}
if ( hwnd == hCtrl_save&& nc == BN_CLICKED&&id==IDC_NMBUT_SAVE)
{
//SetWindowAdditionalData(hwnd, (DWORD)&save_unpushed);
SendNotifyMessage(NMhWnd,IDC_NMBUT_SAVE,0,0);
}
if( hwnd == hCtrl_save && nc == MYBUTTON_MOUSEMOVE)
{
SetWindowAdditionalData(hwnd, (DWORD)&save_mousemove );
}
//---------------------------------------------------------------------------
if ( hwnd == hCtrl_cancel&& nc == MYBUTTON_PUSHED)
{
SetWindowAdditionalData(hwnd, (DWORD)&cancel_pushed);
}
if ( hwnd == hCtrl_cancel&& nc == BN_CLICKED&&id==IDC_NMBUT_CANCEL)
{
//SetWindowAdditionalData(hwnd, (DWORD)&cancel_unpushed);
SendNotifyMessage(NMhWnd,MSG_CLOSE,0,0);
}
if( hwnd == hCtrl_cancel && nc == MYBUTTON_MOUSEMOVE)
{
SetWindowAdditionalData(hwnd, (DWORD)&cancel_mousemove );
}
//---------------------------------------------------------------------------
InvalidateRect (hwnd, NULL, TRUE);
}
//...................................................................static WNDPROC old_edit_proc;//这段代码用来控制号码输入时只能输入数字.static int RestrictedEditBox (HWND hwnd, int message, WPARAM wParam, LPARAM lParam)
{ if (message == MSG_CHAR) { DWORD my_style = GetWindowAdditionalData (hwnd); if ((my_style & MY_ES_DIGIT_ONLY) && (wParam < '0' || wParam > '9')) return 0; } return (*old_edit_proc) (hwnd, message, wParam, lParam);}//..................................................新信息......................................................static int NEWMSGProc (HWND NMhWnd, int message, WPARAM wParam, LPARAM lParam)
{ int TXTLENGTH = 0;
int NUMLENGTH = 0;
HDC hdc = (HDC)wParam;
const RECT* clip = (const RECT*) lParam;
BOOL fGetDC = FALSE;
RECT rcTemp;
switch (message) { case MSG_CREATE:
// emLoadBitmap();
STXThWnd = CreateWindowEx (CTRL_EDIT, "", WS_CHILD |WS_VISIBLE | WS_BORDER, WS_EX_TRANSPARENT, IDC_NMSTXT_NUM,
100, 10, 180, 25, NMhWnd, MY_ES_DIGIT_ONLY);
MTXThWnd = CreateWindowEx (CTRL_MLEDIT, "", WS_CHILD |WS_BORDER | WS_VISIBLE | WS_VSCROLL | ES_AUTOWRAP | ES_BASELINE,WS_EX_TRANSPARENT,IDC_NMMTXT_TXT,
80,45,220,90, NMhWnd, 0);
old_edit_proc = SetWindowCallbackProc (STXThWnd, RestrictedEditBox);
//hCtrl_al= CreateWindowEx(CTRL_MYBUTTON,
// "通读录",WS_VISIBLE | WS_CHILD, WS_EX_TRANSPARENT,IDC_NMBUT_NUM,245, 10, 60, 28, NMhWnd, (DWORD)&al_unpushed);
hCtrl_al =CreateWindow ("button",
"通读录",
WS_CHILD | BS_PUSHBUTTON | WS_VISIBLE,
IDC_NMBUT_NUM,
10, 40, 60, 28, NMhWnd, 0);
// hCtrl_send = CreateWindowEx(CTRL_MYBUTTON,
// "发送",WS_VISIBLE | WS_CHILD, WS_EX_TRANSPARENT,IDC_NMBUT_SEND,28, 148, 60, 28, NMhWnd, (DWORD)&send_unpushed);
hCtrl_send =CreateWindow ("button",
"发送",
WS_CHILD | BS_PUSHBUTTON | WS_VISIBLE |BS_BITMAP,
IDC_NMBUT_SEND,
28, 148, 60, 50, NMhWnd, (DWORD)&send_unpushed);
// hCtrl_save= CreateWindowEx(CTRL_MYBUTTON,
// "保存",WS_VISIBLE | WS_CHILD, WS_EX_TRANSPARENT,IDC_NMBUT_SAVE,128, 148, 60, 28, NMhWnd, (DWORD)&save_unpushed);
hCtrl_save =CreateWindow ("button",
"保存",
WS_CHILD | BS_PUSHBUTTON | WS_VISIBLE,
IDC_NMBUT_SAVE,
128, 148, 60, 28, NMhWnd, 0);
// hCtrl_cancel= CreateWindowEx(CTRL_MYBUTTON,
// "取消",WS_VISIBLE | WS_CHILD, WS_EX_TRANSPARENT,IDC_NMBUT_CANCEL,229, 148, 60, 28, NMhWnd, (DWORD)&cancel_unpushed);
hCtrl_cancel =CreateWindow ("button",
"取消",
WS_CHILD | BS_PUSHBUTTON | WS_VISIBLE,
IDC_NMBUT_CANCEL,
229, 148, 60, 28, NMhWnd, 0);
SetNotificationCallback ( hCtrl_al, nm_notify_proc );
SetNotificationCallback ( hCtrl_send, nm_notify_proc );
SetNotificationCallback ( hCtrl_save, nm_notify_proc );
SetNotificationCallback ( hCtrl_cancel, nm_notify_proc );
switch ( newmsflag )
{
case 0: break;
case 1: SetWindowText ( STXThWnd, GetMsgTxt.number ); break;
case 2: SetWindowText ( MTXThWnd, EditMsgTxt.txt );
SetWindowText ( STXThWnd, EditMsgTxt.number );
break;
case 5: SetWindowText ( MTXThWnd, GetMsgTxt.txt );break;
case 6: SetWindowText ( MTXThWnd, SendMsgTxt.txt );
SetWindowText ( STXThWnd, SendMsgTxt.number );
break;
default: break;
}
break;
/* case MSG_MOUSEMOVE:
SetWindowAdditionalData( hCtrl_al, (DWORD)&al_unpushed );
InvalidateRect (hCtrl_al, NULL, TRUE);
SetWindowAdditionalData( hCtrl_send, (DWORD)&send_unpushed );
InvalidateRect (hCtrl_send, NULL, TRUE);
SetWindowAdditionalData( hCtrl_save, (DWORD)&save_unpushed );
InvalidateRect (hCtrl_save, NULL, TRUE);
SetWindowAdditionalData( hCtrl_cancel, (DWORD)&cancel_unpushed );
InvalidateRect (hCtrl_cancel, NULL, TRUE);
break;
*/
/* case MSG_COMMAND:
switch (wParam) {
case IDC_NMBUT_NUM: //通讯录
SendNotifyMessage(NMhWnd,IDC_NMBUT_NUM,0,0);
//-----------------------------------------------------------
case IDC_NMBUT_SEND: //发送
SendNotifyMessage(NMhWnd,IDC_NMBUT_SEND,0,0);
//-----------------------------------------------------------------------
case IDC_NMBUT_SAVE: //保存
SendNotifyMessage(NMhWnd,IDC_NMBUT_SAVE,0,0);
//---------------------------------------------------------------------------
case MSG_CLOSE: //取消
SendNotifyMessage(NMhWnd,MSG_CLOSE,0,0);
}*/
case MSG_ERASEBKGND:
if (hdc == 0) {
hdc = GetClientDC (NMhWnd);
fGetDC = TRUE;
}
if (clip) {
rcTemp = *clip;
ScreenToClient (NMhWnd, &rcTemp.left, &rcTemp.top);
ScreenToClient (NMhWnd, &rcTemp.right, &rcTemp.bottom);
IncludeClipRect (hdc, &rcTemp);
}
// FillBoxWithBitmap (hdc, rcTemp.left, rcTemp.top, 0, 0, &jpg_bkgnd_NM);
FillBoxWithBitmap (hdc, 0, 0, 320, 192, &jpg_bkgnd_NM);
TextOut ( hdc,10,12,"电话号:");
if (fGetDC)
ReleaseDC (hdc);
return 0;
case IDC_NMBUT_NUM:
telbook(NMhWnd);
break; case IDC_NMBUT_SAVE:
///////////////////////////////////////////////
TXTLENGTH=GetWindowTextLength (MTXThWnd);
if ( TXTLENGTH >0 )
{
GetWindowText(MTXThWnd, EditMsgTxt.txt,MTXThWnd);
}
NUMLENGTH=GetWindowTextLength (STXThWnd);
if ( NUMLENGTH > 0 )
{
GetWindowText(STXThWnd, EditMsgTxt.number,TXTLENGTH);
}
if ( TXTLENGTH == 0 && NUMLENGTH == 0 )
{
MessageBox (NMhWnd,"无存储信息","草稿箱", MB_OK | MB_ICONINFORMATION);
break;
}
if ( TXTLENGTH == 0 && NUMLENGTH > 0 )
{
MessageBox (NMhWnd,"请输入存储内容","草稿箱", MB_OK | MB_ICONINFORMATION);
break;
}
if ( TXTLENGTH > 0 && NUMLENGTH == 0 )
{
MessageBox (NMhWnd,"请输入存储号码","草稿箱", MB_OK | MB_ICONINFORMATION);
break;
}
msg_time = time ( &msg_time );
memcpy ( EditMsgTxt.time, ctime ( &msg_time ), 24 );
EditMsgTxt.time[24] = '\0';
EditMsgFp = fopen ("data/EditMsg.txt","a+");
fwrite ( &EditMsgTxt, sizeof(msg), 1, EditMsgFp );
printf ("%s\n",EditMsgTxt.number);
printf ("%s\n",EditMsgTxt.txt);
printf ("保存 \n");
fclose (EditMsgFp);
MessageBox (NMhWnd,"草稿箱", "已存储",MB_OK | MB_ICONINFORMATION);
//--------------------------------------------
break; case IDC_NMBUT_SEND:
TXTLENGTH=GetWindowTextLength (STXThWnd); if ( TXTLENGTH == 0 ) { MessageBox (NMhWnd, "无发送号码", "请输入号码", MB_OK | MB_ICONINFORMATION);
break;}
GetWindowText(STXThWnd, SendMsgTxt.number,TXTLENGTH);
TXTLENGTH=GetWindowTextLength (MTXThWnd); if ( TXTLENGTH == 0 ) { MessageBox (NMhWnd, "无发送内容", "请输入内容", MB_OK | MB_ICONINFORMATION);
break;} GetWindowText(MTXThWnd, SendMsgTxt.txt,MTXThWnd);
gprs_msg(SendMsgTxt.number,SendMsgTxt.txt);
MessageBox (NMhWnd,"已发送", "短信",MB_OK | MB_ICONINFORMATION);
/////////////////////////////////////////////
msg_time = time ( &msg_time );
memcpy ( SendMsgTxt.time, ctime ( &msg_time ), 24 );
SendMsgTxt.time[24] = '\0';
SendMsgFp = fopen ( "data/SendMsg.txt", "a+" );
fwrite ( &SendMsgTxt, sizeof(msg), 1, SendMsgFp);
fclose ( SendMsgFp );
//-------------------------------------------
break;
case MSG_CLOSE:
//emUnLoadBitmap();
UnloadBitmap (&send_unpushed);
DestroyMainWindow(NMhWnd);
PostQuitMessage(NMhWnd);
break;
} return DefaultMainWinProc(NMhWnd,message,wParam,lParam);
}//^^^^^^^^^^^^^^^^新信息^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^int NewMSG(HWND hWnd)
{
MSG Msg;
MAINWINCREATE CreateInfo;
RegisterMyButtonControl ();
CreateInfo.dwStyle=WS_VISIBLE | WS_BORDER | WS_CAPTION; CreateInfo.dwExStyle=WS_EX_NONE; CreateInfo.spCaption="新信息";
CreateInfo.hMenu=0; CreateInfo.hCursor=GetSystemCursor(IDC_ARROW); CreateInfo.hIcon=0; CreateInfo.MainWindowProc=NEWMSGProc;
CreateInfo.lx=0; CreateInfo.ty=0; CreateInfo.rx=320; CreateInfo.by=216; CreateInfo.iBkColor=GetWindowElementColor (BKC_CONTROL_DEF); CreateInfo.dwAddData=0; CreateInfo.hHosting=hWnd;
LoadBitmap (HDC_SCREEN, &jpg_bkgnd_NM, "./image/background/bkgnd29.jpg");
LoadBitmap (HDC_SCREEN, &send_unpushed, "image/button/msg_send.jpg");
NMhWnd=CreateMainWindow(&CreateInfo);
ShowWindow(NMhWnd,SW_SHOWNORMAL);
while(GetMessage(&Msg,NMhWnd))
{ TranslateMessage(&Msg); DispatchMessage(&Msg); } MainWindowThreadCleanup(NMhWnd);
UnloadBitmap (&jpg_bkgnd_NM);
UnregisterMyButtonControl ();
return 0;
}
#endif
///////////////////////新信息/////////////////////////////////////////////
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?