mod_RSsim

源代码在线查看: about.cpp

软件大小: 473 K
上传用户: black001
关键词: mod_RSsim
下载地址: 免注册下载 普通下载 VIP

相关代码

				// About.cpp : implementation file
				//
				
				#include "stdafx.h"
				#include "mod_rssim.h"
				#include "Creditstatic.h"
				#include "About.h"
				#include "StarWarsCtrl.h"
				#include "EasterDlg.h"
				
				#ifdef _DEBUG
				#define new DEBUG_NEW
				#undef THIS_FILE
				static char THIS_FILE[] = __FILE__;
				#endif
				
				/////////////////////////////////////////////////////////////////////////////
				// CAboutDlg dialog
				/*
				char *pArrCredit = { "NETBAS FOR WINDOWS NT\t||Copyright (c) 1998|"
				        "Test Data AS|All Rights Reserved||"
				        "BITMAP1^|||"    // this is a quoted bitmap resource 
				        "Project Lead\r||Kjetil Kvamme|||"
				        "Technical Lead\r||Kjetil Kvamme|||"
				        "Engineering Lead\r||Paul K. Tonder|||"
				        "Product Lead\r||Tom Rotting|||"
				        "Engineering\r||Paul K. Tonder,  Rolf T. Wold,  Sigbjorn Helset|"
				        "Reidar Ognedal,  Kjetil Kvamme, Arne Bakken|||"
				        "BITMAP2^|||"  // this is a quoted bitmap resource 
				        "QA\r||Mary Hech,  Sam Bamnm,  Ron Fonn,  Steve Waeve|"
				        "Igor Borisnoff,  FellaB |||"
				        "Documentation\r||"
				        "Arvid Molnvik,  Joanne Hone,  Annette Fune|||"
				        "Technical Program Office\r||Burf Murphy, Foll Roller||||"
				        "Systems Support\r||Bendy Land|||"
				        "Administrative Support\r||Donna Fonna|||"
				        "* * * * * * * * *\t|||"
				        "BITMAP3^||"
				        "Project Manager\r||Dwain Kinghorn|||"
				        "Engineering\r||"
				        "Hank Bank,  Ray Fay,  Bill Sill,  Mark Dark,  Peter Leter|"
				        "Lev Bef|||Quality Assurance\r||"
				        "Biff Bin||||"
				        "BITMAP4^|||||"
				        };
				
				*/
				char *pArrCreditPre = { "MOD_RSSIM Version %s\t||"
				      "IDB_CREDITBMP1^|"
				      "Simulator for MODBUS RTU, Ethernet,$|"
				      "Allen-Bradley DF1 protocol (CRC and BCC),$|"
				      "Slave and Master$|"
				      "IDB_CREDITBMP3^|"
				      "Hotkeys:\r|"
				      "-S = Settings`|-N = Noise`|-E = Erase`|-L = Load`|-A = sAve`|"
				      "-T = Transparency toggle`|-B = aBout`|-M = eMulations`|"
				      "-C = Comms/values toggle`|-J = insert random RS232 error-char`||"
				      "IDB_CREDITBMP4^|"
				      "About\r|"
				      "This cool mini protcol test program was written by|"
				      "Conrad Braam.|"
				      "For a PDF format document of the MODBUS protocol, $|"
				      "open your browser and type www.modicon.com, go to $|"
				      "the search page and type in\"PI-MBUS-300\" (no quotes)$|"
				      ", and download the document.$||"
				      "IDB_CREDITBMP2^|"
				      "------------------------------------------------------------------|"
				      "Allen Bradley is a trademark of Rockwell Corporation.|"
				      "Modicon is a trademark of Gould Modicon USA.|"
				      "JOY is a trademark of Joy Mining Machinery company UK.|"
				      "IDB_CREDITBMP5^|"
				      "|||||||"
				
				};
				
				
				
				CAboutDlg::CAboutDlg(CWnd* pParent /*=NULL*/)
					: CDialog(CAboutDlg::IDD, pParent)
				{
					//{{AFX_DATA_INIT(CAboutDlg)
						// NOTE: the ClassWizard will add member initialization here
					//}}AFX_DATA_INIT
				   m_topic.SetHelpTopic("More");
				}
				
				
				void CAboutDlg::DoDataExchange(CDataExchange* pDX)
				{
					CDialog::DoDataExchange(pDX);
					//{{AFX_DATA_MAP(CAboutDlg)
						// NOTE: the ClassWizard will add DDX and DDV calls here
					//}}AFX_DATA_MAP
				}
				
				
				BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
				   ON_NOTIFY_EX( TTN_NEEDTEXT, 0, OnTTN_NeedText )
					//{{AFX_MSG_MAP(CAboutDlg)
					ON_BN_CLICKED(IDC_SPLASH, OnSplash)
					//}}AFX_MSG_MAP
				END_MESSAGE_MAP()
				
				/////////////////////////////////////////////////////////////////////////////
				// CAboutDlg message handlers
				
				BOOL CAboutDlg::OnInitDialog() 
				{
				CString mailLink,versionStr;
				CString reg;   //registration info
					
				   CDialog::OnInitDialog();
				
				   
					// the WWW link is set up here
					m_hyperlink1.SubclassDlgItem(IDC_WWWLINK, this);
					m_hyperlink2.SubclassDlgItem(IDC_MODICONLINK, this);
				
				   m_hyperlink1.SetHoverCursorHandle(AfxGetApp()->LoadCursor(IDC_MYHANDCURSOR));
				   m_hyperlink2.SetHoverCursorHandle(AfxGetApp()->LoadCursor(IDC_MYHANDCURSOR));
				   // set the URL that we will actually go to here
				   m_hyperlink1.m_link.LoadString(IDS_ADROITWEBURL);// = "http://www.adroit.co.za/";
				   // set the URL that we will actually go to here
				   m_hyperlink2.m_link = "http://www.modicon.com/";
				
					// the Email to link is set up here
				   m_emaillink1.SubclassDlgItem(IDC_EMAILLINK, this);
				   m_emaillink1.SetHoverCursorHandle(AfxGetApp()->LoadCursor(IDC_MYHANDCURSOR));
				   // set the URL that we will actually go to here
				   GetDlgItemText(IDC_ABOUTHEADDING, versionStr);  // get our version from this dialog
				   mailLink.Format("mailto:conradb@adroit.co.za?subject=%s", versionStr);  // append it
				   m_emaillink1.m_link = mailLink;
				
				   if (m_registeredOK)
				      reg.Format("Registered user: %s   Key: %s", m_registeredUser, m_registeredKey);
				   else
				      reg.Format("Unregistered user");
				   SetDlgItemText(IDC_REGISTRATIONINFO, reg);
				   //TOOLTIPS START
				   m_ToolTip.Create (this);
				   m_ToolTip.Activate (TRUE);
				
				   CWnd*    pWnd = GetWindow (GW_CHILD);
				   while (pWnd)
				   {
				       int nID = pWnd->GetDlgCtrlID ();
				       if (nID != -1)
				       {
				           m_ToolTip.AddTool (pWnd, pWnd->GetDlgCtrlID ());
				       }
				       pWnd = pWnd->GetWindow (GW_HWNDNEXT);
				   }
				   //TOOLTIPS END
				   //GetDlgItem(IDC_SINKSTAT1)->ModifyStyle(0, WS_CLIPSIBLINGS);
				   GetDlgItem(IDC_SINKSTAT2)->ModifyStyle(0, WS_CLIPSIBLINGS);
				   //GetDlgItem(IDC_SINKSTAT3)->ModifyStyle(0, WS_CLIPSIBLINGS);
				
					m_static.SubclassDlgItem(IDC_CREDITSTATIC, this);
				   CString pArrCredit;
				   pArrCredit.Format(pArrCreditPre, lpsMyAppVersion);
					m_static.SetCredits(pArrCredit,'|');
					m_static.SetSpeed(DISPLAY_MEDIUM);
					m_static.SetColor(BACKGROUND_COLOR, GetSysColor(COLOR_3DFACE));//RGB(192,192,192));
					m_static.SetTransparent();
					m_static.StartScrolling();
				
				   return TRUE;  // return TRUE unless you set the focus to a control
					              // EXCEPTION; OCX Property Pages should return FALSE
				}
				
				// ------------------------ OnTTN_NeedText ---------------------------------
				// TTN_NEEDTEXT message handler for TOOLTIPS
				//
				BOOL CAboutDlg::OnTTN_NeedText( UINT id, NMHDR * pNMHDR, LRESULT * pResult )
				{
				    TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;
				    UINT nID =pNMHDR->idFrom;
				    if (pTTT->uFlags & TTF_IDISHWND)
				    {
				        // idFrom is actually the HWND of the tool
				        nID = ::GetDlgCtrlID((HWND)nID);
				        if(nID)
				        {
				            pTTT->lpszText = MAKEINTRESOURCE(nID);
				            pTTT->hinst = AfxGetResourceHandle();
				            return(TRUE);
				        }
				    }
				    return(FALSE);
				} // OnTTN_NeedText
				
				// -------------------------------- PreTranslateMessage -----------------------
				BOOL CAboutDlg::PreTranslateMessage(MSG* pMsg) 
				{
				    // TOOLTIPS START
				    if (m_hWnd)
				    {
				        m_ToolTip.RelayEvent (pMsg);
				        return CDialog::PreTranslateMessage(pMsg);
				    }
				    return (FALSE);
				    // TOOLTIPS END
					
					return CDialog::PreTranslateMessage(pMsg);
				}
				
				// ------------------------------------- OnOK ---------------------------------
				void CAboutDlg::OnOK() 
				{
				CEasterDlg dlg;
				short state;
				
				   dlg.m_userName = this->m_registeredUser;	
				   // show the easter egg if user holds down any Shift key while hitting this button
					state = GetKeyState(VK_LSHIFT) | GetKeyState(VK_RSHIFT);
				   if (state 				      dlg.DoModal();
					
					CDialog::OnOK();
				}
				
				// ----------------------------------- OnSplash -------------------------------
				// give the user time to view the splash screen
				void CAboutDlg::OnSplash() 
				{
					// splash kills itself after 7000 ms (7 seconds)
				   CSplashWnd::EnableSplashScreen(TRUE);
				   CSplashWnd::m_splashShowDelay = 7;
				   CSplashWnd::ShowSplashScreen(this); 	
					
				}
							

相关资源