📄 pppclientdlg.cpp
字号:
ON_COMMAND(ID_STOPPLAY_COMM, OnStopplayComm)
ON_COMMAND(ID_INITSERVER_OPTION, OnInitserverOption)
ON_COMMAND(ID_RESET_COMM, OnResetComm)
ON_COMMAND(ID_STOPSEND_COMM, OnStopsendComm)
ON_COMMAND(ID_SERVER_REGISTER_COMM, OnServerRegisterComm)
ON_WM_KEYDOWN()
ON_COMMAND(ID_SOFTPROTECTED_COMM, OnSoftprotectedComm)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPPPClientDlg message handlers
BOOL CPPPClientDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
// 自己设置对话框图标。MFC不会为对话框应用程序设置它
//m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME_BIGICON);
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
m_main_dlg=this;
{
CString m_pathfile;
m_pathfile=GetCurDir();
m_pathfile=m_pathfile+"RegCode.dat";
char str[256];
GetPrivateProfileString("REG","CODE","",str,256,m_pathfile.GetBuffer(m_pathfile.GetLength()));
//m_regcode_str=str;
//
CString sn,code;
GetDiskCSerialNumber(sn);
code=GetSoftWareRegisterCode(sn);
//m_serial_str=sn;
//UpdateData(FALSE);
//判断是否注册
CString syscode;
syscode=CString(str);
if(syscode==code)
{
m_software_register_flag=true;
//this->SetWindowText("Thank you for registered software!");
//m_register_static.SetText(TEXT("Registered"));
}
else
{
m_software_register_flag=false;
//this->SetWindowText("Please Registered software!");
//m_register_static.SetText(TEXT("Unregistered"));
AfxMessageBox("This software is Unregistered!");
}
}
//
BOOL bt=m_startup_dlg.Create(IDD_STARTUP_DIALOG,NULL);
ASSERT(bt);
::ShowWindow(m_startup_dlg.m_hWnd, SW_SHOWNORMAL);
::UpdateWindow(m_startup_dlg.m_hWnd);
m_startup_dlg.ShowWindow(SW_SHOW);
SetTimer(1,1000,NULL);
//toolbar
//添加一个平面工具条:TBSTYLE_TRANSPARENT
if (!m_toolbar.CreateEx( this,TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_ALIGN_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS,
CRect(0,0,0,0)) || !m_toolbar.LoadToolBar(IDR_MAIN_TOOLBAR) )
{
TRACE0("failed to create toolbar\n");
return FALSE;
}
// m_toolbar.SetBKColor(RGB(0,128,128));
m_toolbar.ShowWindow(SW_SHOW);
RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);
//使TOOLBAR按纽变灰 ID_DEMOONE_SIMULATION ID_DEMOALL_SIMULATION
//CToolBarCtrl *btn=(CToolBarCtrl*)&m_toolbar.GetToolBarCtrl();
//btn->Indeterminate(ID_DEMOONE_SIMULATION,FALSE);
//btn->Indeterminate(ID_DEMOALL_SIMULATION,FALSE);
//btn->Indeterminate(ID_STOPDEMO_SIMULATION,TRUE);
//btn->EnableButton(ID_STOPDEMO_SIMULATION,FALSE);
SetToolBarBtnState(ID_DEMOONE_SIMULATION,FALSE);
SetToolBarBtnState(ID_DEMOALL_SIMULATION,FALSE);
SetToolBarBtnState(ID_STOPDEMO_SIMULATION,FALSE);
// AfxGetApp()->LoadIcon(IDR_MAINFRAME);
// CenterWindow(GetDesktopWindow()); // center to the hpc screen
//status bar
m_statusbar.SetPosItem(2);
m_statusbar.Create(this); //We create the status bar
m_statusbar.SetIndicators(indicators,3); //Set the number of panes
{
CRect rect;
GetClientRect(&rect);
//Size the two panes
m_statusbar.SetPaneInfo(0,ID_MAINSTATUS,SBPS_NORMAL,200);//rect.Width()-100);
m_statusbar.SetPaneInfo(1,ID_SYSDATETIME,SBPS_NORMAL,120);
m_statusbar.SetPaneInfo(2,ID_PRGSTATUS,SBPS_STRETCH ,0);
//This is where we actually draw it on the screen
RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,
ID_PRGSTATUS);
}
//load system parameter
CString m_save_fontfile;
TCHAR exeFullPath[MAX_PATH];
int len2 = GetModuleFileName(NULL,exeFullPath,MAX_PATH);
CString strDir(exeFullPath);
strDir.TrimLeft();
strDir.TrimRight();
CString strTemp = strDir.Left(strDir.GetLength() - 3);
strDir = strTemp;
strDir += _T("ini");
m_ini_pathname = strDir;
//
m_save_fontfile=strTemp;
m_save_fontfile+=_T("FNT");
//
//WAY 1
FILE *fp;
fp=fopen(m_ini_pathname,"rb");
if(!fp)
{
m_system_para.m_show_startx=0;
m_system_para.m_show_starty=0;
m_system_para.m_show_width=320;
m_system_para.m_show_height=240;
m_system_para.m_auto_run_flag=1;
m_system_para.m_watchdog_flag=1;
strcpy(m_system_para.m_savepath_str,_T("\\Storage Card"));
strcpy(m_system_para.m_server_ip,"127.0.0.1");
//auto reset server time
m_system_para.hour =12;
m_system_para.minute=0;
m_system_para.second=0;
m_system_para.second=0;
//softmode--network-client
m_system_para.softmode=1;
m_system_para.timeout=5;
}
else
{
//x
if(fread((char*)&m_system_para.m_show_startx,1,sizeof(SYSTEM_PARAMETER),fp)!=sizeof(SYSTEM_PARAMETER))
{
m_system_para.m_show_startx=0;
m_system_para.m_show_starty=0;
m_system_para.m_show_width=320;
m_system_para.m_show_height=240;
m_system_para.m_auto_run_flag=1;
m_system_para.m_watchdog_flag=1;
strcpy(m_system_para.m_savepath_str,_T("\\Storage Card"));
strcpy(m_system_para.m_server_ip,"127.0.0.1");
//auto reset server time
m_system_para.hour =12;
m_system_para.minute=0;
m_system_para.second=0;
//softmode--network-client
m_system_para.softmode=1;
m_system_para.timeout=5;
}
fclose(fp);
}
//
if(m_system_para.softmode==0)
{//单机版:从本地取得系统所有字体,注意:改变软件运行模式,必须要重新启动软件
HDC hdc;
//Enumerate the available fonts.
hdc =::GetDC(this->GetSafeHwnd());
//
m_all_logfont.RemoveAll();
EnumFontFamilies ((HDC)hdc, (LPTSTR)NULL,
GetSystemAllFontname,(LPARAM)&m_all_logfont);
::ReleaseDC (this->GetSafeHwnd(), hdc);
}
else
{
//从已经SERVER取的系统保存的字体文件中取得字体
fp=fopen(m_save_fontfile.GetBuffer( m_save_fontfile.GetLength()),"rb");
if(fp)
{
LOGFONT data;
WORD count=0;
m_all_logfont.RemoveAll();
fread(&count,2,1,fp);
for(WORD i=0;i<count;i++)
{
fread(&data,sizeof(data),1,fp);
//
m_all_logfont.AddTail(data);
}
fclose(fp);
}
else
{
//如果字体文件不存在,则从SERVER取的所有字体并保存在本地,
//然后如果再失败,则从本地取得系统所有字体
if(!GetServerFont())//从SERVER取所有字体
{
HDC hdc;
//Enumerate the available fonts.
hdc =::GetDC(this->GetSafeHwnd());
//
m_all_logfont.RemoveAll();
EnumFontFamilies ((HDC)hdc, (LPTSTR)NULL,
GetSystemAllFontname,(LPARAM)&m_all_logfont);
::ReleaseDC (this->GetSafeHwnd(), hdc);
}
else//保存SERVER的字体在本地文件
{
//create font file save local directory
CFile m_file;
if(m_file.Open(m_save_fontfile,CFile::modeCreate|CFile::modeWrite|CFile::shareDenyNone))
{
m_file.SeekToBegin( );
//UpdateData();//??? for edit item
WORD font_count=m_all_logfont.GetCount();
m_file.Write(&font_count,2);
LOGFONT data;
//ZeroMemory(&data,sizeof(data));
if(m_all_logfont.GetCount()>0)
{
POSITION pos = m_all_logfont.GetHeadPosition();
for(int i=0;i<m_all_logfont.GetCount();i++)
{
data=m_all_logfont.GetNext(pos);
//save data
m_file.Write(&data,sizeof(data));
} //
}
m_file.Close();
}
}//
}
}
//adjust time
//OnAdjusttimeComm();
//
// CMenu* l_SubMenu = AfxGetMainWnd()->GetMenu()->GetSubMenu(2);
//
// if (l_SubMenu != NULL &&l_SubMenu->GetMenuItemCount() > 0)
// {
//
// //ID_PLAYONE ID_PLAYALL MF_ENABLED MF_DISABLED
// l_SubMenu->EnableMenuItem(ID_DEMOONE_SIMULATION, MF_BYCOMMAND | MF_ENABLED);
// l_SubMenu->EnableMenuItem(ID_DEMOALL_SIMULATION, MF_BYCOMMAND | MF_ENABLED);
// l_SubMenu->EnableMenuItem(ID_STOPDEMO_SIMULATION, MF_BYCOMMAND | MF_GRAYED);
//
// }
SetMenuItemState(2,ID_DEMOONE_SIMULATION,FALSE);
SetMenuItemState(2,ID_DEMOALL_SIMULATION,FALSE);
SetMenuItemState(2,ID_STOPDEMO_SIMULATION,FALSE);
//init control data
//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);
//share file
m_sharefile_flag=FALSE;
//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(2);
//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_item_list.InsertColumn(i,&lvc);
}
m_item_list.SetExtendedStyle(m_item_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);
//SHARE FILE
GetDlgItem(IDC_SHAREFILE_CHECK)->EnableWindow(false);
//OPEN
((CButton *)GetDlgItem(IDC_OPENFILE_BUTTON))->EnableWindow(false);
((CEdit *)GetDlgItem(IDC_CURFILENAME_EDIT))->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_APPEND_BUTTON))->EnableWindow(false);
((CButton*) GetDlgItem(IDC_INSERT_BUTTON))->EnableWindow(false);
((CButton*) GetDlgItem(IDC_DELALL_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
//
// 寻找HotKey对应的原子是否存在于原子列表
//int id;
ATOM m_atom;
if((m_atom=GlobalFindAtom("Hotkey CTRL+ALT+F12")) == 0)
{
// 获取当前窗口句柄
HWND handle = GetSafeHwnd();
//显示主窗体
// 如果没有存在于原子列表,则创建一个原子
MY_HOTKEY = GlobalAddAtom("Hotkey CTRL+ALT+F12");
//注册全局热键Ctrl + Alt + F12
if(RegisterHotKey(handle, MY_HOTKEY, MOD_ALT|MOD_CONTROL, VK_F12))
m_hotkey_flag=true;
else
m_hotkey_flag=false;
}
else
{
//MessageBox(L"CTRL+ALT+F12 HOT KEY has been Registed",L"System Error",MB_OK|MB_ICONERROR);
GlobalDeleteAtom(m_atom);
// 获取当前窗口句柄
HWND handle = GetSafeHwnd();
//显示主窗体
// 如果没有存在于原子列表,则创建一个原子
MY_HOTKEY = GlobalAddAtom("Hotkey CTRL+ALT+F12");
//注册全局热键Ctrl + Alt + F12
if(RegisterHotKey(handle, MY_HOTKEY, MOD_ALT|MOD_CONTROL, VK_F12))
m_hotkey_flag=true;
else
m_hotkey_flag=false;
//m_hotkey_flag=false;
}
//else // 如果HotKey已经存在于原子列表,则终止程序运行
//PostQuitMessage(0);
ATOM m_atom1;
if((m_atom1=GlobalFindAtom("Hotkey CTRL+ALT+F11")) == 0)
{
//再次 获取当前窗口句柄
HWND handle = GetSafeHwnd();
//显示主窗体
// 如果没有存在于原子列表,则创建一个原子
MY_DEMO_HOTKEY = GlobalAddAtom("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;
}
else
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -