📄 easytradedlg.cpp
字号:
// EasyTradeDlg.cpp : implementation file
//
#include "stdafx.h"
#include "EasyTrade.h"
#include "EasyTradeDlg.h"
#include "SetIngSys.h"
#include "DataBaseDlg.h"
#include "DataTj.h"
#include "DataFind.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#define AW_HOR_POSITIVE 0x00000001
#define AW_HOR_NEGATIVE 0x00000002
#define AW_VER_POSITIVE 0x00000004
#define AW_VER_NEGATIVE 0x00000008
#define AW_CENTER 0x00000010
#define AW_HIDE 0x00010000
#define AW_ACTIVATE 0x00020000
#define AW_SLIDE 0x00040000
#define AW_BLEND 0x00080000
CEasyTradeDlg::CEasyTradeDlg(CWnd* pParent /*=NULL*/)
: CDialog(CEasyTradeDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CEasyTradeDlg)
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDI_ICON1);
}
BEGIN_MESSAGE_MAP(CEasyTradeDlg, CDialog)
ON_WM_CONTEXTMENU()
//{{AFX_MSG_MAP(CEasyTradeDlg)
ON_WM_CLOSE()
ON_COMMAND(IDM_POP_TC, OnPopTc)
ON_MESSAGE(WM_ONTRAY,OnTray)
ON_COMMAND(IDM_SYS_SETING, OnSysSeting)
ON_COMMAND(ID_MEN_DATABASE, OnMenDatabase)
ON_COMMAND(IDM_START_SERVICE, OnStartService)
ON_COMMAND(IDM_CLOSE_SERVICE, OnCloseService)
ON_COMMAND(ID_MEN_DATATJ, OnMenDatatj)
ON_COMMAND(IDM_DATA_FIND, OnDataFind)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CEasyTradeDlg message handlers
BOOL CEasyTradeDlg::OnInitDialog()
{
CDialog::OnInitDialog();
/*---------------------------------------*/
char* lpRand=new char[10];
srand( (unsigned)time( NULL ) );
int nRand=rand();
itoa(nRand,lpRand,10);
int nLen=strlen(lpRand);
strcpy(lpRand,&lpRand[nLen-1]);
if(atoi(lpRand)<5) //随机产生两种动态效果之一
dwStyle=AW_BLEND;
else
dwStyle=AW_CENTER;
delete lpRand;
CRect rcWnd,rcNew;
this->GetWindowRect(&rcWnd);
//定位窗口位置
int nXScreen=::GetSystemMetrics(SM_CXSCREEN);
int nYScreen=::GetSystemMetrics(SM_CYSCREEN);
int TitBarHeight=::GetSystemMetrics(SM_CYSIZE);
rcNew.left=nXScreen/2-rcWnd.Width()/2;
rcNew.top=nYScreen/2-rcWnd.Height()/2+TitBarHeight;
rcNew.right=rcNew.left+rcWnd.Width();
rcNew.bottom=rcNew.top+rcWnd.Height();
this->MoveWindow(rcNew);
// TODO: Add extra initialization here
HINSTANCE hInst=LoadLibrary("User32.DLL");
typedef BOOL(WINAPI MYFUNC(HWND,DWORD,DWORD));
MYFUNC* AnimateWindow;
AnimateWindow=(MYFUNC *)::GetProcAddress(hInst,"AnimateWindow");
AnimateWindow(this->GetSafeHwnd(),700,dwStyle);
FreeLibrary(hInst);
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
this->Invalidate();
/*----------------------------------------------------*/
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
//添加系统托盘
char lpszTip[]="易商通短信管理系统";
NOTIFYICONDATA data;
data.cbSize=sizeof(NOTIFYICONDATA);
data.hWnd=m_hWnd;
lstrcpyn(data.szTip,lpszTip,sizeof(lpszTip));
data.uCallbackMessage=WM_ONTRAY;
data.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP;
data.hIcon=m_hIcon;
data.uID=IDI_ICON1;
Shell_NotifyIcon(NIM_ADD,&data);
InitMenu();
return TRUE; // return TRUE unless you set the focus to a control
}
void CEasyTradeDlg::OnContextMenu(CWnd*, CPoint point)
{
if(::IsMenu(m_Menu.m_hMenu))
{
m_Menu.TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,
point.x,point.y,AfxGetApp()->m_pMainWnd,TPM_LEFTALIGN);
}
}
void CEasyTradeDlg::InitMenu()
{
static char menuText[10][40];
if(m_Menu.m_hMenu==NULL)
{
HMENU hSubMenu=NULL;
CMenu tempMenu;
if(tempMenu.LoadMenu(IDR_POPUP))
{
if((hSubMenu=::GetSubMenu(tempMenu.m_hMenu,0))!=NULL)
{
tempMenu.RemoveMenu(0,MF_BYPOSITION);
m_Menu.Attach(hSubMenu);
ASSERT(m_Menu.m_hMenu==hSubMenu);
if(::IsMenu(m_Menu.m_hMenu))
{
int i=m_Menu.GetMenuItemCount();
memset(menuText,0,10*40);
for(i-=1;i>=0;i--)
{
m_Menu.GetMenuString(i,menuText[i],40,MF_BYPOSITION);
m_Menu.ModifyMenu(i,MF_BYPOSITION|MF_OWNERDRAW|m_Menu.GetMenuState(i,MF_BYPOSITION),m_Menu.GetMenuItemID(i),LPCTSTR(menuText[i]));
}
}
}
}
}
}
void CEasyTradeDlg::OnClose()
{
CDialog::OnClose();
}
void CEasyTradeDlg::OnTray(WPARAM wParam, LPARAM lParam)
{
UINT uMouseMsg=(UINT) lParam;
if(uMouseMsg==WM_RBUTTONDOWN)
{
CPoint point;
::GetCursorPos(&point);
m_Menu.TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON, point.x,point.y,AfxGetApp()->m_pMainWnd,TPM_LEFTALIGN);
}
}
void CEasyTradeDlg::OnPopTc()
{
if(MessageBox("确定要退出吗?","系统提示",MB_OKCANCEL|MB_ICONQUESTION)!=1)
return;
//添加系统托盘
NOTIFYICONDATA data;
data.hWnd=m_hWnd;
data.uID=IDI_ICON1;
Shell_NotifyIcon(NIM_DELETE,&data);
CDialog::OnCancel();
}
void CEasyTradeDlg::OnOK()
{
// TODO: Add extra validation here
this->ShowWindow(SW_HIDE);
// CDialog::OnOK();
}
void CEasyTradeDlg::OnButexit()
{
this->OnCancel();
}
void CEasyTradeDlg::OnCancel()
{
HINSTANCE hInst=LoadLibrary("User32.DLL");
typedef BOOL(WINAPI MYFUNC(HWND,DWORD,DWORD));
MYFUNC* AnimateWindow;
AnimateWindow=(MYFUNC *)::GetProcAddress(hInst,"AnimateWindow");
AnimateWindow(this->GetSafeHwnd(),700,AW_HIDE|dwStyle);
FreeLibrary(hInst);
CDialog::OnCancel();
}
void CEasyTradeDlg::OnSysSeting()
{
// TODO: Add your command handler code here
CSetIngSys m_SysSet;
m_SysSet.DoModal ();
}
void CEasyTradeDlg::OnMenDatabase()
{
// TODO: Add your command handler code here
CDataBaseDlg m_databasedlg;
m_databasedlg.DoModal ();
}
void CEasyTradeDlg::OnStartService()
{
// TODO: Add your command handler code here
// STARTUPINFO si;
// PROCESS_INFORMATION pi;
ZeroMemory(&si,sizeof(STARTUPINFO));
ZeroMemory(&pi,sizeof(PROCESS_INFORMATION));
si.cb = sizeof(STARTUPINFO);
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_SHOWNORMAL;
if(CreateProcess(NULL,"EasyTradeService.exe",NULL,NULL,FALSE,0,NULL,NULL,&si,&pi))
AfxMessageBox("服务器启动成功!");
else
AfxMessageBox("服务器启动失败");
// WaitForInputIdle(pi.hProcess ,INFINITE);
// CloseHandle(pi.hProcess );
// CloseHandle(pi.hThread );
}
void CEasyTradeDlg::OnCloseService()
{
// TODO: Add your command handler code here
// AfxGetApp()->CloseAllDocuments(true);
WaitForSingleObject(pi.hProcess ,1000*3);
if(TerminateProcess(pi.hProcess ,0))
AfxMessageBox("服务器关闭成功");
else
AfxMessageBox("服务器关闭失败");
CloseHandle(pi.hProcess );
CloseHandle(pi.hThread );
// ::PostQuitMessage (-1);
}
CDataTj m_datatj;
void CEasyTradeDlg::OnMenDatatj()
{
// TODO: Add your command handler code here
m_datatj.DoModal ();
}
CDataFind m_datafind;
void CEasyTradeDlg::OnDataFind()
{
// TODO: Add your command handler code here
m_datafind.DoModal ();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -