📄 pppserverdlg.cpp
字号:
// MessageBox(L"CTRL+ALT+F11 HOT KEY has been Registed",L"System Error",MB_OK|MB_ICONERROR);
GlobalDeleteAtom(m_atom1);
//再次 获取当前窗口句柄
HWND handle = GetSafeHwnd();
//显示主窗体
// 如果没有存在于原子列表,则创建一个原子
MY_DEMO_HOTKEY = GlobalAddAtom(L"Hotkey CTRL+ALT+F11");
//注册全局热键Ctrl + Alt + F12
if(RegisterHotKey(handle, MY_DEMO_HOTKEY, MOD_ALT|MOD_CONTROL, VK_F11))
m_demo_hotkey_flag=true;
else
m_demo_hotkey_flag=false;
//m_demo_hotkey_flag=false;
}
// TODO: Add extra initialization here
//for menu
// Add menu bar
// hinstance=AfxGetInstanceHandle( );
//CMDBAR_HELP
ghCB = CommandBar_Create(AfxGetInstanceHandle( ), this->GetSafeHwnd(), 1000);
if(ghCB)
{
CommandBar_InsertMenubar(ghCB, AfxGetInstanceHandle( ), IDR_MAINFRAME_MENU, 0);
CommandBar_AddAdornments(ghCB, 0, 0);
// CommandBar_AddAdornments(ghCB, CMDBAR_HELP|CMDBAR_OK, 0);
CommandBar_DrawMenuBar(ghCB, 0);
//
}
///////////////////////////////////////////////////////////////////////
{
CMenu l_Menu;
CMenu* l_SubMenu = NULL;
l_Menu.Attach(CommandBar_GetMenu(ghCB, 0));
l_SubMenu=l_Menu.GetSubMenu(2); //
if (l_SubMenu != NULL &&l_SubMenu->GetMenuItemCount() > 0)
{
l_SubMenu->EnableMenuItem(ID_PLAYONE_CONTROL, MF_BYCOMMAND | MF_ENABLED);
l_SubMenu->EnableMenuItem(ID_PLAYALL_CONTROL, MF_BYCOMMAND | MF_ENABLED);
l_SubMenu->EnableMenuItem(ID_STOPALL_CONTROL, MF_BYCOMMAND | MF_GRAYED);
}
//
//force menu to be redrawn:
CommandBar_DrawMenuBar(ghCB, 0);
l_Menu.Detach();
}
//////////////////////////////////////////////////////////////////////
// ::SetWindowPos(this->m_hWnd,HWND_TOP,0,0,320,240,SWP_FRAMECHANGED|SWP_SHOWWINDOW);
SetWindowText(L"PPPServer (Ver2.00) for wince.net");
//init control data
//share flile ONLY READLY
GetDlgItem(IDC_SHAREFILE_CHECK)->EnableWindow(false);
//type
m_type_combobox.ResetContent();
m_type_combobox.AddString(_T("Text"));
m_type_combobox.AddString(_T("Picture"));
m_type_combobox.AddString(_T("GIF Animation"));
m_type_combobox.AddString(_T("Video"));
m_type_combobox.SetCurSel(0);
//action in
m_actionin_combobox.ResetContent();
for(int i=0;i<MAX_ADD_SHOWWAY-1;i++)
m_actionin_combobox.AddString(tmp_fun_in_str[i]);
m_actionin_combobox.SetCurSel(0);
//action out
m_actionout_combobox.ResetContent();
for(i=0;i<MAX_ADD_SHOWWAY-2;i++)//-1
m_actionout_combobox.AddString(tmp_fun_out_str[i]);
m_actionout_combobox.SetCurSel(0);
//speed
CSpinButtonCtrl *pSpin;
pSpin=(CSpinButtonCtrl *)GetDlgItem(IDC_SPEED_SPIN);
ASSERT(pSpin!=NULL);
pSpin->SetBuddy(GetDlgItem(IDC_SPEED_EDIT));
pSpin->SetRange32(0,10000);
pSpin->SetPos(m_speed);
//delay time
pSpin=(CSpinButtonCtrl *)GetDlgItem(IDC_DELAYTIME_SPIN);
ASSERT(pSpin!=NULL);
pSpin->SetBuddy(GetDlgItem(IDC_DELAYTIME_EDIT));
pSpin->SetRange32(0,60000);
pSpin->SetPos(m_delaytime);
//poisition
m_position_combobox.ResetContent();
m_position_combobox.AddString(_T("Center"));
m_position_combobox.AddString(_T("Stretch"));
m_position_combobox.AddString(_T("Flat"));
m_position_combobox.SetCurSel(0);
//LIST
//为报表添加7列:
TCHAR *szColumn[]={TEXT("#NO"),
TEXT("Type"),
TEXT("Filename"),
TEXT("ActionIn"),
TEXT("ActionOut"),
TEXT("Speed"),
TEXT("DelayTime")
};
int widths[]={50,80,200,100,100,50,100};
LV_COLUMN lvc;
lvc.mask=LVCF_FMT|LVCF_WIDTH|LVCF_TEXT|LVCF_SUBITEM;
lvc.fmt=LVCFMT_LEFT;
for( i=0;i<7;i++)
{//插入各列
lvc.pszText=szColumn[i];
lvc.cx=widths[i];
lvc.iSubItem=i;
m_list.InsertColumn(i,&lvc);
}
m_list.SetExtendedStyle(m_list.GetExtendedStyle()|LVS_EX_FULLROWSELECT );
//系统现在没有文件打开
m_edit_type=-1;
//输入控件的有效性
((CComboBox *)GetDlgItem(IDC_TYPE_COMBO))->EnableWindow(false);
((CComboBox *)GetDlgItem(IDC_ACTIONIN_COMBO))->EnableWindow(false);
((CComboBox *)GetDlgItem(IDC_ACTIONOUT_COMBO))->EnableWindow(false);
//OPEN
((CButton *)GetDlgItem(IDC_OPEN_BUTTON))->EnableWindow(false);
((CEdit *)GetDlgItem(IDC_FILENAME_EDIT))->EnableWindow(false);
//share flile ONLY READLY
//GetDlgItem(IDC_SHAREFILE_CHECK)->EnableWindow(false);
//SPEED
((CEdit *)GetDlgItem(IDC_SPEED_EDIT))->EnableWindow(false);
((CSpinButtonCtrl *)GetDlgItem(IDC_SPEED_SPIN))->EnableWindow(false);
//DELAYTIME
((CEdit *)GetDlgItem(IDC_DELAYTIME_EDIT))->EnableWindow(false);
((CSpinButtonCtrl *)GetDlgItem(IDC_DELAYTIME_SPIN))->EnableWindow(false);
//
((CComboBox *)GetDlgItem(IDC_POSITION_COMBO))->EnableWindow(false);
//设置指针移动按纽的有效性
((CButton*) GetDlgItem(IDC_FIRST_BUTTON))->EnableWindow(false);
((CButton*) GetDlgItem(IDC_PREV_BUTTON))->EnableWindow(false);
((CButton*) GetDlgItem(IDC_NEXT_BUTTON))->EnableWindow(false);
((CButton*) GetDlgItem(IDC_LAST_BUTTON))->EnableWindow(false);
//设置操作按纽的有效性
((CButton*) GetDlgItem(IDC_ADD_BUTTON))->EnableWindow(false);
((CButton*) GetDlgItem(IDC_INSERT_BUTTON))->EnableWindow(false);
((CButton*) GetDlgItem(IDC_CLEAR_BUTTON))->EnableWindow(false);
((CButton*) GetDlgItem(IDC_SAVE_BUTTON))->EnableWindow(false);
((CButton*) GetDlgItem(IDC_DELONE_BUTTON))->EnableWindow(false);
((CButton*) GetDlgItem(IDC_CANCEL_BUTTON))->EnableWindow(false);
//设置指针移动的有效性
((CButton*) GetDlgItem(IDC_FIRST_BUTTON))->EnableWindow(FALSE);
((CButton*) GetDlgItem(IDC_PREV_BUTTON))->EnableWindow(FALSE);
((CButton*) GetDlgItem(IDC_NEXT_BUTTON))->EnableWindow(FALSE);
((CButton*) GetDlgItem(IDC_LAST_BUTTON))->EnableWindow(FALSE);
//direct show for play video file
//create demo dialog
BOOL bResult=m_demo_dlg.Create(IDD_DEMO_DLG,NULL);
ASSERT(bResult);
m_demo_dlg.ShowWindow(SW_HIDE);//SW_SHOW);
m_show_demo_flag=false;//true;
//
m_hSynEvent=CreateEvent(NULL,false,true,_T("PPPServer2006"));
if(!m_hSynEvent)
{
ShowMessage(L"Create SynEvent failed");
}
//send set pos size message
m_main_dlg->m_demo_dlg.SetPosSize(m_system_para.m_show_startx,
m_system_para.m_show_starty,
m_system_para.m_show_width,
m_system_para.m_show_height,
m_show_demo_flag);
//open system playtable
//...
if(!OpenAutoPlayTableFile(m_system_para.m_autorun_tabfile))
{
ShowMessage(L"Open Auto Playtable file failed!");//!!!!!
}
//auto play
if(m_system_para.m_auto_run_flag==1)
{
PostMessage(WM_AUTORUN,0,0);//(WPARAM)m_system_para.m_autorun_tabfile,0);
}
return TRUE; // return TRUE unless you set the focus to a control
}
void CPPPServerDlg::OnAboutHelp()
{
// TODO: Add your command handler code here
CAboutDlg m_dlg;
m_dlg.DoModal();
}
void CPPPServerDlg::OnDestroy()
{
CDialog::OnDestroy();
// TODO: Add your message handler code here
//for reset system
KillTimer(1);
KillTimer(2);
// TODO: Add your message handler code here
m_run_watchdlg_flag=FALSE;
m_server_run_flag=false;
Sleep(100);
// CloseHandle((HANDLE)m_watchdog_thread);
//
//ajust system time
closesocket(serverSocket);
//WSACleanup();
CloseHandle(m_server_thread_handle);
//free system resource for jpeg
//if(m_hBitmap) DeleteObject(m_hBitmap);
// m_brush.DeleteObject();
//
if(m_hotkey_flag)
{
UnregisterHotKey(this->GetSafeHwnd(),MY_HOTKEY);
GlobalDeleteAtom(MY_HOTKEY);
}
if(m_demo_hotkey_flag)
{
UnregisterHotKey(this->GetSafeHwnd(),MY_DEMO_HOTKEY);
GlobalDeleteAtom(MY_DEMO_HOTKEY);
}
//stop
m_all_run_flag=false;
//
CloseHandle(m_hSynEvent);//
//
m_demo_dlg.DestroyWindow();
//
if(m_hSynEvent) CloseHandle(m_hSynEvent);
}
void CPPPServerDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
if(nIDEvent==1)
{
DWORD count;
count=(m_system_para.hour*3600+m_system_para.minute*60+m_system_para.second)*1000;
if(count!=0)
{
m_reset_end_time=GetTickCount();
if(m_reset_end_time-m_reset_begin_time>=count)
{
//1.reset software
//1.1stop play
OnStopallControl();
EndDialog(0);
//1.2exit software
//2.reset machine
//reset system
// OutRegisterFun(0X53000000,0x8021);
}
}
}
else if(nIDEvent==2)
{
//get softprotected register
//update softprotected register
DWORD f,n,a;
if(GetSoftProtectedRegistered(f,n,a))
{
n++;
if(n<=a)
{
UpdateSoftProtectedRegistered(f,n,a);
if(n>a) //保护:软件免费试用到期
{
KillTimer(2);
m_software_protected_flag=TRUE;
}
}
}
}
CDialog::OnTimer(nIDEvent);
}
//------------------------------------------------------------------
BOOL CPPPServerDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_ESCAPE) return TRUE;
if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_RETURN) return TRUE;
if((pMsg->message==WM_CLOSE||pMsg->message==WM_QUIT)&&
pMsg->hwnd==this->GetSafeHwnd())
{
if(MessageBox(L"Are you sure to exit system(Yes/No)?",
L"Exit system",
MB_YESNO|MB_ICONQUESTION)==
IDYES)
{
if(m_modify_flag&&MessageBox(L"The content has been modified,Are you sure to save it(Yes/No)?",
L"Save File",
MB_YESNO|MB_ICONQUESTION)==
IDYES)
{
//
OnSaveFile();
}
PostMessage(WM_QUIT);
}
else
{
return TRUE;
}
}
return CDialog::PreTranslateMessage(pMsg);
}
void CPPPServerDlg::OnExitFile()
{
// TODO: Add your command handler code here
PostMessage(WM_CLOSE);
}
void CPPPServerDlg::OnShowhideDemodlgControl()
{
// TODO: Add your command handler code here
m_show_demo_flag=m_show_demo_flag?false:true;
if(m_show_demo_flag)
{
m_demo_dlg.ShowWindow(SW_SHOW);
//send set pos size message
}
else
{
m_demo_dlg.ShowWindow(SW_HIDE);
}
m_main_dlg->m_demo_dlg.SetPosSize(m_system_para.m_show_startx,m_system_para.m_show_starty,
m_system_para.m_show_width,m_system_para.m_show_height,m_show_demo_flag);
CMenu l_Menu;
CMenu* l_SubMenu = NULL;
l_Menu.Attach(CommandBar_GetMenu(ghCB, 0));
l_SubMenu=l_Menu.GetSubMenu(2); //
if (l_SubMenu != NULL &&l_SubMenu->GetMenuItemCount() > 0)
{
//CMenu *control_menu=pMenu->GetSubMenu(2);
if(m_show_demo_flag)
l_SubMenu->ModifyMenu(ID_SHOWHIDE_DEMODLG_CONTROL, MF_STRING,ID_SHOWHIDE_DEMODLG_CONTROL,L"Hide Demo Window");
else
l_SubMenu->ModifyMenu(ID_SHOWHIDE_DEMODLG_CONTROL, MF_STRING,ID_SHOWHIDE_DEMODLG_CONTROL,L"Show Demo Window");
}
//
//force menu to be redrawn:
CommandBar_DrawMenuBar(ghCB, 0);
l_Menu.Detach();
}
void CPPPServerDlg::OnShowhideMaindlgControl()
{
// TODO: Add your command handler code here
if(m_hotkey_flag)
{
this->ShowWindow(SW_HIDE);
m_show_main_flag=false;
}
}
LRESULT CPPPServerDlg::OnHotKey(WPARAM w,LPARAM l)
{
if(m_hotkey_flag&&w==MY_HOTKEY)//CTRL+ALT+F12
{
m_show_main_flag=m_show_main_flag?false:true;
if(m_show_main_flag)
this->ShowWindow(SW_SHOW);
else
this->ShowWindow(SW_HIDE);
//
CMenu l_Menu;
CMenu* l_SubMenu = NULL;
l_Menu.Attach(CommandBar_GetMenu(ghCB, 0));
l_SubMenu=l_Menu.GetSubMenu(2); //
if (l_SubMenu != NULL &&l_SubMenu->GetMenuItemCount() > 0)
{
//CMenu *control_menu=pMenu->GetSubMenu(2);
if(m_show_main_flag)
l_SubMenu->ModifyMenu(ID_SHOWHIDE_MAINDLG_CONTROL, MF_STRING,ID_SHOWHIDE_MAINDLG_CONTROL,L"Hide Main Window");
else
l_SubMenu->ModifyMenu(ID_SHOWHIDE_MAINDLG_CONTROL, MF_STRING,ID_SHOWHIDE_MAINDLG_CONTROL,L"Show Main Window");
}
//
//force menu to be redrawn:
CommandBar_DrawMenuBar(ghCB, 0);
l_Menu.Detach();
}
//CTRL+ALT+F11
if(m_demo_hotkey_flag&&w==MY_DEMO_HOTKEY)///
{
m_show_demo_flag=m_show_demo_flag?false:true;
if(m_show_demo_flag)
{
m_demo_dlg.ShowWindow(SW_SHOW);
//send set pos size message
}
else
{
m_demo_dlg.ShowWindow(SW_HIDE);
}
m_main_dlg->m_demo_dlg.SetPosSize(m_system_para.m_show_startx,m_system_para.m_show_starty,
m_system_para.m_show_width,m_system_para.m_show_height,m_show_demo_flag);
CMenu l_Menu;
CMenu* l_SubMenu = NULL;
l_Menu.Attach(CommandBar_GetMenu(ghCB, 0));
l_SubMenu=l_Menu.GetSubMenu(2); //
if (l_SubMenu != NULL &&l_SubMenu->GetMenuItemCount() > 0)
{
//CMenu *control_menu=pMenu->GetSubMenu(2);
if(m_show_demo_flag)
l_SubMenu->ModifyMenu(ID_SHOWHIDE_DEMODLG_CONTROL, MF_STRING,ID_SHOWHIDE_DEMODLG_CONTROL,L"Hide Demo Window");
else
l_SubMenu->ModifyMenu(ID_SHOWHIDE_DEMODLG_CONTROL, MF_STRING,ID_SHOWHIDE_DEMODLG_CONTROL,L"Show Demo Window");
}
//
//force menu to be redrawn:
CommandBar_DrawMenuBar(ghCB, 0);
l_Menu.Detach();
}
return 0;
}
//
LRESULT CPPPServerDlg::OnShowMainWnd(WPARAM w,LPARAM l)
{
//if(m_hotkey_flag)
{
this->ShowWindow(SW_SHOW);
m_show_main_flag=true;
CMenu l_Menu;
CMenu* l_SubMenu = NULL;
l_Menu.Attach(CommandBar_GetMenu(ghCB, 0));
l_SubMenu=l_Menu.GetSubMenu(2); //
if (l_SubMenu != NULL &&l_SubMenu->GetMenuItemCount() > 0)
{
//CMenu *control_menu=pMenu->GetSubMenu(2);
if(m_show_main_flag)
l_SubMenu->ModifyMenu(ID_SHOWHIDE_MAINDLG_CONTROL, MF_STRING,ID_SHOWHIDE_MAINDLG_CONTROL,L"Hide Main Window");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -