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

📄 pppserverdlg.cpp

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