⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pppclientdlg.cpp

📁 客户端: 这是一个完整的基于Wince 4.1图形图象,网络通讯(C/S)模式下的商用程序源代码包.
💻 CPP
📖 第 1 页 / 共 5 页
字号:
	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 + -