lstBasicCommands;
+
+ lstBasicCommands.AddTail(ID_FILE_NEW);
+ lstBasicCommands.AddTail(ID_FILE_OPEN);
+ lstBasicCommands.AddTail(ID_FILE_SAVE);
+ lstBasicCommands.AddTail(ID_FILE_PRINT);
+ lstBasicCommands.AddTail(ID_APP_EXIT);
+ lstBasicCommands.AddTail(ID_EDIT_CUT);
+ lstBasicCommands.AddTail(ID_EDIT_PASTE);
+ lstBasicCommands.AddTail(ID_EDIT_UNDO);
+ lstBasicCommands.AddTail(ID_APP_ABOUT);
+ lstBasicCommands.AddTail(ID_VIEW_STATUS_BAR);
+ lstBasicCommands.AddTail(ID_VIEW_TOOLBAR);
+ lstBasicCommands.AddTail(ID_VIEW_APPLOOK_OFF_2003);
+ lstBasicCommands.AddTail(ID_VIEW_APPLOOK_VS_2005);
+ lstBasicCommands.AddTail(ID_VIEW_APPLOOK_OFF_2007_BLUE);
+ lstBasicCommands.AddTail(ID_VIEW_APPLOOK_OFF_2007_SILVER);
+ lstBasicCommands.AddTail(ID_VIEW_APPLOOK_OFF_2007_BLACK);
+ lstBasicCommands.AddTail(ID_VIEW_APPLOOK_OFF_2007_AQUA);
+ lstBasicCommands.AddTail(ID_VIEW_APPLOOK_WINDOWS_7);
+
+ CMFCToolBar::SetBasicCommands(lstBasicCommands);
+
+ return 0;
+}
+
+BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
+{
+ if( !CFrameWndEx::PreCreateWindow(cs) )
+ return FALSE;
+ // TODO: ڴ˴ͨ
+ // CREATESTRUCT cs Ĵʽ
+
+ return TRUE;
+}
+
+// CMainFrame
+
+#ifdef _DEBUG
+void CMainFrame::AssertValid() const
+{
+ CFrameWndEx::AssertValid();
+}
+
+void CMainFrame::Dump(CDumpContext& dc) const
+{
+ CFrameWndEx::Dump(dc);
+}
+#endif //_DEBUG
+
+
+// CMainFrame Ϣ
+
+void CMainFrame::OnViewCustomize()
+{
+ CMFCToolBarsCustomizeDialog* pDlgCust = new CMFCToolBarsCustomizeDialog(this, TRUE /* ɨ˵*/);
+ pDlgCust->EnableUserDefinedToolbars();
+ pDlgCust->Create();
+}
+
+LRESULT CMainFrame::OnToolbarCreateNew(WPARAM wp,LPARAM lp)
+{
+ LRESULT lres = CFrameWndEx::OnToolbarCreateNew(wp,lp);
+ if (lres == 0)
+ {
+ return 0;
+ }
+
+ CMFCToolBar* pUserToolbar = (CMFCToolBar*)lres;
+ ASSERT_VALID(pUserToolbar);
+
+ BOOL bNameValid;
+ CString strCustomize;
+ bNameValid = strCustomize.LoadString(IDS_TOOLBAR_CUSTOMIZE);
+ ASSERT(bNameValid);
+
+ pUserToolbar->EnableCustomizeButton(TRUE, ID_VIEW_CUSTOMIZE, strCustomize);
+ return lres;
+}
+
+void CMainFrame::OnApplicationLook(UINT id)
+{
+ CWaitCursor wait;
+
+ theApp.m_nAppLook = id;
+
+ switch (theApp.m_nAppLook)
+ {
+ case ID_VIEW_APPLOOK_WIN_2000:
+ CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManager));
+ break;
+
+ case ID_VIEW_APPLOOK_OFF_XP:
+ CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerOfficeXP));
+ break;
+
+ case ID_VIEW_APPLOOK_WIN_XP:
+ CMFCVisualManagerWindows::m_b3DTabsXPTheme = TRUE;
+ CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows));
+ break;
+
+ case ID_VIEW_APPLOOK_OFF_2003:
+ CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerOffice2003));
+ CDockingManager::SetDockingMode(DT_SMART);
+ break;
+
+ case ID_VIEW_APPLOOK_VS_2005:
+ CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerVS2005));
+ CDockingManager::SetDockingMode(DT_SMART);
+ break;
+
+ case ID_VIEW_APPLOOK_VS_2008:
+ CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerVS2008));
+ CDockingManager::SetDockingMode(DT_SMART);
+ break;
+
+ case ID_VIEW_APPLOOK_WINDOWS_7:
+ CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows7));
+ CDockingManager::SetDockingMode(DT_SMART);
+ break;
+
+ default:
+ switch (theApp.m_nAppLook)
+ {
+ case ID_VIEW_APPLOOK_OFF_2007_BLUE:
+ CMFCVisualManagerOffice2007::SetStyle(CMFCVisualManagerOffice2007::Office2007_LunaBlue);
+ break;
+
+ case ID_VIEW_APPLOOK_OFF_2007_BLACK:
+ CMFCVisualManagerOffice2007::SetStyle(CMFCVisualManagerOffice2007::Office2007_ObsidianBlack);
+ break;
+
+ case ID_VIEW_APPLOOK_OFF_2007_SILVER:
+ CMFCVisualManagerOffice2007::SetStyle(CMFCVisualManagerOffice2007::Office2007_Silver);
+ break;
+
+ case ID_VIEW_APPLOOK_OFF_2007_AQUA:
+ CMFCVisualManagerOffice2007::SetStyle(CMFCVisualManagerOffice2007::Office2007_Aqua);
+ break;
+ }
+
+ CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerOffice2007));
+ CDockingManager::SetDockingMode(DT_SMART);
+ }
+
+ RedrawWindow(NULL, NULL, RDW_ALLCHILDREN | RDW_INVALIDATE | RDW_UPDATENOW | RDW_FRAME | RDW_ERASE);
+
+ theApp.WriteInt(_T("ApplicationLook"), theApp.m_nAppLook);
+}
+
+void CMainFrame::OnUpdateApplicationLook(CCmdUI* pCmdUI)
+{
+ pCmdUI->SetRadio(theApp.m_nAppLook == pCmdUI->m_nID);
+}
+
+BOOL CMainFrame::LoadFrame(UINT nIDResource, DWORD dwDefaultStyle, CWnd* pParentWnd, CCreateContext* pContext)
+{
+ // ཫִĹ
+
+ if (!CFrameWndEx::LoadFrame(nIDResource, dwDefaultStyle, pParentWnd, pContext))
+ {
+ return FALSE;
+ }
+
+
+ // ΪûԶ尴ť
+ BOOL bNameValid;
+ CString strCustomize;
+ bNameValid = strCustomize.LoadString(IDS_TOOLBAR_CUSTOMIZE);
+ ASSERT(bNameValid);
+
+ for (int i = 0; i < iMaxUserToolbars; i ++)
+ {
+ CMFCToolBar* pUserToolbar = GetUserToolBarByIndex(i);
+ if (pUserToolbar != NULL)
+ {
+ pUserToolbar->EnableCustomizeButton(TRUE, ID_VIEW_CUSTOMIZE, strCustomize);
+ }
+ }
+
+ return TRUE;
+}
+
+
+LRESULT CMainFrame::OnDrawMessage( WPARAM wparam , LPARAM lparam )
+{
+ return 0;
+}
+
+
+void CMainFrame::OnMenuFrameAnticollision()
+{
+ // TODO: ڴ
+ CDlgAntiFraming dlg;
+
+ dlg.DoModal( );
+}
+
+
+void CMainFrame::OnMenuFrameShort()
+{
+ // TODO: ڴ
+ CDlgShortFrm dlg;
+
+ dlg.DoModal();
+}
+
+
+void CMainFrame::OnMenuFrameStd()
+{
+ // TODO: ڴ
+ CDlgStdFrame dlg;
+
+ dlg.DoModal();
+}
+
+
+void CMainFrame::OnMenuParityCrc16()
+{
+ // TODO: ڴ
+ CCRC16Dlg crc16Dlg;
+ crc16Dlg.DoModal();
+}
+
+
+void CMainFrame::OnMenuParityOdd()
+{
+ // TODO: ڴ
+
+ COddParityDlg oddparityDlg;
+
+ oddparityDlg.DoModal();
+}
+
+
+void CMainFrame::OnMenuCmdReqa()
+{
+ // TODO: ڴ
+ CDlgCmd_SF dlg;
+
+ dlg.m_ucCmd = ISO_14443_CMD_REQA;
+ dlg.DoModal();
+}
+
+
+void CMainFrame::OnMenuCmdSak()
+{
+ // TODO: ڴ
+ CDlgCmdSak dlg;
+
+ dlg.DoModal();
+
+}
+
+
+void CMainFrame::OnMenuCmdWupa()
+{
+ // TODO: ڴ
+ CDlgCmd_SF dlg;
+
+ dlg.m_ucCmd = ISO_14443_CMD_WUPA;
+ dlg.DoModal();
+}
+
+
+void CMainFrame::OnMenuCmdHalt()
+{
+ // TODO: ڴ
+ CDlgCmdHalt dlg;
+
+ dlg.DoModal();
+}
+
+
+void CMainFrame::OnMenuCmdAtqa()
+{
+ // TODO: ڴ
+ CDlgCmdAtqa dlg;
+
+ dlg.DoModal();
+}
+
+
+void CMainFrame::OnMenuCmdAnticollisionReq()
+{
+ // TODO: ڴ
+ CDlgCmdAnti dlg;
+
+ dlg.DoModal();
+}
+
+
+void CMainFrame::OnMenuCmdAnticollisionRsp()
+{
+ // TODO: ڴ
+ CDlgCmdAntiRsp dlg;
+
+ dlg.DoModal();
+}
+
+
+void CMainFrame::OnMenuSetUspip()
+{
+ // TODO: ڴ
+ CSetIpofUSPDlg dlg;
+
+// dlg.m_ctlIpAddr.SetAddress(127,0,0,1);;
+ if( dlg.DoModal() == IDOK )
+ {
+ if( m_pTransceiver )
+ {
+ delete m_pTransceiver;
+ }
+ m_pTransceiver = new clVSPRTransceiver( dlg.m_szIpAddr );
+ m_pTransceiver->Init( );
+ }
+}
+
+
+void CMainFrame::OnMenuCodeCode()
+{
+ // TODO: ڴ
+
+ CDlgCode dlg;
+
+ dlg.m_pTransceiver = m_pTransceiver;
+ dlg.DoModal();
+}
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/MainFrm.h b/Labs/Lab2/requirements/src/vspr/vspr/MainFrm.h
new file mode 100644
index 0000000..9af144f
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/MainFrm.h
@@ -0,0 +1,103 @@
+
+// MainFrm.h : CMainFrame Ľӿ
+//
+
+#pragma once
+
+#include "..\..\rfidsrc\class\clUSPTrans.h"
+
+using namespace VSPR_OF_ISO14443A;
+#define WM_DRAW (WM_USER+1)
+
+#if 0
+ һͷļжԼϢID #define WM_MY_FIRST_MESSAGE (WM_USER + 0x001)
+ԼϢafx_msg void OnMyFirstMessage();
+CPPļϢӳ꣺
+BEGIN_MESSAGE_MAP END_MESSAGE_MAPϢӳON_MESSAGEӵ//}}棩£
+BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
+//{{AFX_MSG_MAP(CAboutDlg)
+// No message handlers
+//}}AFX_MSG_MAP
+ON_MESSAGE(WM_MY_FIRST_MESSAGE, OnMyFirstMessage)
+END_MESSAGE_MAP()
+ģϢ
+OnMyFirstMessage
+{
+// TODO: ڴӿؼ֪ͨ
+}
+#endif
+class CMainFrame : public CFrameWndEx
+{
+
+protected: // л
+ CMainFrame();
+ DECLARE_DYNCREATE(CMainFrame)
+
+//
+public:
+ // ȫtransceiver.
+
+//
+public:
+
+// д
+public:
+ virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
+ virtual BOOL LoadFrame(UINT nIDResource, DWORD dwDefaultStyle = WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE, CWnd* pParentWnd = NULL, CCreateContext* pContext = NULL);
+
+// ʵ
+public:
+ virtual ~CMainFrame();
+#ifdef _DEBUG
+ virtual void AssertValid() const;
+ virtual void Dump(CDumpContext& dc) const;
+#endif
+
+protected: // ؼǶԱ
+ CMFCMenuBar m_wndMenuBar;
+ CMFCToolBar m_wndToolBar;
+ CMFCStatusBar m_wndStatusBar;
+ CMFCToolBarImages m_UserImages;
+
+// ɵϢӳ亯
+protected:
+ afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
+ afx_msg void OnViewCustomize();
+ afx_msg LRESULT OnToolbarCreateNew(WPARAM wp, LPARAM lp);
+ afx_msg void OnApplicationLook(UINT id);
+ afx_msg void OnUpdateApplicationLook(CCmdUI* pCmdUI);
+ DECLARE_MESSAGE_MAP()
+
+public:
+ // ߣ
+ afx_msg LRESULT OnDrawMessage( WPARAM wparam , LPARAM lparam );
+
+ //
+ afx_msg void OnMenuCodeCode();
+ // У
+ afx_msg void OnMenuParityCrc16();
+ afx_msg void OnMenuParityOdd();
+ // ֡
+ afx_msg void OnMenuFrameAnticollision();
+ afx_msg void OnMenuFrameShort();
+ afx_msg void OnMenuFrameStd();
+ //
+ afx_msg void OnMenuCmdReqa();
+ afx_msg void OnMenuCmdSak();
+ afx_msg void OnMenuCmdWupa();
+ afx_msg void OnMenuCmdHalt();
+ afx_msg void OnMenuCmdAtqa();
+ afx_msg void OnMenuCmdAnticollisionReq();
+ afx_msg void OnMenuCmdAnticollisionRsp();
+
+ clVSPRTransceiver *GetTransceiver()
+ {
+ return m_pTransceiver;
+ }
+protected:
+ clVSPRTransceiver* m_pTransceiver;
+public:
+ afx_msg void OnMenuSetUspip();
+};
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/OddParityDlg.cpp b/Labs/Lab2/requirements/src/vspr/vspr/OddParityDlg.cpp
new file mode 100644
index 0000000..db1c700
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/OddParityDlg.cpp
@@ -0,0 +1,113 @@
+// OddParityDlg.cpp : ʵļ
+//
+
+#include "stdafx.h"
+#include "vspr.h"
+#include "OddParityDlg.h"
+#include "afxdialogex.h"
+
+#include "..\..\rfidsrc\class\OddParity.h"
+#include "..\..\rfidsrc\class\clUSPTrans.h"
+#include "mainfrm.h"
+
+using namespace VSPR_OF_ISO14443A;
+// COddParityDlg Ի
+
+IMPLEMENT_DYNAMIC(COddParityDlg, CDialogEx)
+
+COddParityDlg::COddParityDlg(CWnd* pParent /*=NULL*/)
+ : CDialogEx(COddParityDlg::IDD, pParent)
+{
+ m_nLocalOddParity = -1;
+ m_nRemoteOddParity = -1;
+ m_bRemote = false;
+ m_sInput = _T("");
+}
+
+COddParityDlg::~COddParityDlg()
+{
+}
+
+void COddParityDlg::DoDataExchange(CDataExchange* pDX)
+{
+ CDialogEx::DoDataExchange(pDX);
+ DDX_Text(pDX, IDC_EDIT_LOCAL_ODDPARITY, m_nLocalOddParity);
+ DDV_MinMaxInt(pDX, m_nLocalOddParity, -1, 1);
+ DDX_Text(pDX, IDC_EDIT_REMOTE_ODDPARITY, m_nRemoteOddParity);
+ DDV_MinMaxInt(pDX, m_nRemoteOddParity, -1, 1);
+ DDX_Check(pDX, IDC_CHECK_REMOTE, m_bRemote);
+ DDX_Text(pDX, IDC_EDIT_HEX_INPUT, m_sInput);
+ DDV_MaxChars(pDX, m_sInput, 2);
+}
+
+
+BEGIN_MESSAGE_MAP(COddParityDlg, CDialogEx)
+ ON_BN_CLICKED(IDC_BUTTON_CAL, &COddParityDlg::OnClickedButtonCal)
+END_MESSAGE_MAP()
+
+
+// COddParityDlg Ϣ
+void COddParityDlg::OnClickedButtonCal()
+{
+ // TODO: ڴӿؼ֪ͨ
+
+ UpdateData( );
+
+ BYTE bdat = 0;
+ int k = 0, m;
+ m_sInput.MakeLower( );
+
+ while( k < 2 )
+ {
+ if( m_sInput[k] >= '0' && m_sInput[k] <= '9' )
+ {
+ m = m_sInput[k]-'0';
+ }
+ else if ( m_sInput[k] >= 'a' && m_sInput[k] <= 'f' )
+ {
+ m = m_sInput[k]-'a' + 10;
+ }
+ else
+ {
+ AfxMessageBox( _T("Ƿ1ֽ16") );
+ return;
+ }
+
+ if( k == 0 )
+ {
+ bdat = m << 4;
+ }
+ else
+ {
+ bdat |= m;
+ }
+ k++;
+ }
+
+ COddParity oddParity;
+ m_nLocalOddParity = oddParity.GetOddParity( bdat );
+ if( m_bRemote )
+ {
+ // ͵Զ
+ clVSPRTransceiver* pTransceiver = ((CMainFrame *)AfxGetMainWnd())->GetTransceiver();
+ if( pTransceiver )
+ {
+ pTransceiver->Send( &bdat, 8, VSPR_CMD_ODD_PARITY_REQ );
+
+ // ȴ1s.
+ Sleep(1000 );
+
+ UCHAR ucCmd;
+ UINT16 u16BitLen;
+ UCHAR abtBuf[200];
+ u16BitLen = pTransceiver->Recv( abtBuf, 200, &ucCmd );
+ if( ( u16BitLen > 0 ) && ( ucCmd == VSPR_CMD_ODD_PARITY_RSP ) )
+ {
+ // ʾCRC_H/CRC_L
+ m_nRemoteOddParity = abtBuf[0];
+ }
+ }
+ }
+
+ UpdateData( false );
+}
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/OddParityDlg.h b/Labs/Lab2/requirements/src/vspr/vspr/OddParityDlg.h
new file mode 100644
index 0000000..e629ca3
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/OddParityDlg.h
@@ -0,0 +1,27 @@
+#pragma once
+
+
+// COddParity Ի
+
+class COddParityDlg : public CDialogEx
+{
+ DECLARE_DYNAMIC(COddParityDlg)
+
+public:
+ COddParityDlg(CWnd* pParent = NULL); // 캯
+ virtual ~COddParityDlg();
+
+// Ի
+ enum { IDD = IDD_DLG_ODDPARITY };
+
+protected:
+ virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV ֧
+
+ DECLARE_MESSAGE_MAP()
+public:
+ int m_nLocalOddParity;
+ int m_nRemoteOddParity;
+ BOOL m_bRemote;
+ afx_msg void OnClickedButtonCal();
+ CString m_sInput;
+};
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/ReadMe.txt b/Labs/Lab2/requirements/src/vspr/vspr/ReadMe.txt
new file mode 100644
index 0000000..9cbb2a6
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/ReadMe.txt
@@ -0,0 +1,111 @@
+================================================================================
+MICROSOFT : vspr Ŀ
+===============================================================================
+
+ӦóΪ vspr ӦóӦóʾ Microsoft Ļʹ÷ΪдӦó㡣
+
+ļҪ vspr Ӧóÿļݡ
+
+vspr.vcxproj
+ʹӦóɵ VC++ ĿĿļ
+ɸļ Visual C++ İ汾ϢԼйʹӦóѡƽ̨úĿܵϢ
+
+vspr.vcxproj.filters
+ ʹáӦóɵ VC++ Ŀɸѡļ
+ йĿļɸѡ֮ĹϢ IDE УֹͨضڵԷʽʾչļ磬.cppļ롰Դļɸѡ
+
+vspr.h
+ӦóҪͷļĿضͷļ( Resource.h) CvsprApp Ӧóࡣ
+
+vspr.cpp
+ǰӦó CvsprApp ҪӦóԴļ
+
+vspr.rc
+dzʹõ Microsoft Windows Դб RES Ŀ¼д洢ͼꡢλͼꡣļֱ Microsoft Visual C++ нб༭ĿԴλ 2052 С
+
+res\vspr.ico
+ӦóͼͼļͼҪԴļ vspr.rc С
+
+res\vspr.rc2
+ļ Microsoft Visual C++ нб༭ԴӦýԴ༭༭ԴڴļС
+
+/////////////////////////////////////////////////////////////////////////////
+
+ܴ:
+Ŀ MFC 档
+
+MainFrm.h, MainFrm.cpp
+Щļ CMainFrame
+CFrameWnd SDI ܹܡ
+
+/////////////////////////////////////////////////////////////////////////////
+
+Ӧóһĵͺһͼ:
+
+vsprDoc.hvsprDoc.cpp - ĵ
+Щļ CvsprDoc ࡣ༭Щļĵݲʵļͼ(ͨ CvsprDoc::Serialize)
+
+vsprView.hvsprView.cpp - ĵͼ
+Щļ CvsprView ࡣ
+CvsprView ڲ鿴 CvsprDoc
+
+
+
+
+/////////////////////////////////////////////////////////////////////////////
+
+֧:
+
+hlp\vspr.hhp
+ļǰĿļļΪ .chm ļݡ
+
+hlp\vspr.hhc
+ļгĿݡ
+
+hlp\vspr.hhk
+ļ
+
+hlp\afxcore.htm
+ļ MFC Ļı⡣ԼİӵļС
+
+makehtmlhelp.bat
+ļϵͳļ
+
+hlp\Images\*.gif
+Щ Microsoft ıļλͼļ
+
+
+/////////////////////////////////////////////////////////////////////////////
+
+:
+
+ActiveX ؼ
+Ӧóʹ ActiveX ؼ֧֡
+
+/////////////////////////////////////////////////////////////////////////////
+
+ļ:
+
+StdAfx.hStdAfx.cpp
+ЩļΪ vspr.pch Ԥͷ (PCH) ļΪ StdAfx.obj Ԥļ
+
+Resource.h
+DZͷļµԴ ID
+Microsoft Visual C++ ȡ´ļ
+
+vspr.manifest
+ Ӧó嵥ļ Windows XP Ӧó
+ ض汾гԡسʹô
+ Ϣӳʵij
+ Ӧó˽ϢӦó嵥Ϊ·ַΪ
+ Ӧóִļװͬļеⲿ .manifest ļ
+ ҲԴʽڸÿִļС
+/////////////////////////////////////////////////////////////////////////////
+
+ע:
+
+ӦóʹáTODO:ָʾӦӻԶԴ벿֡
+
+Ӧóڹ DLL ʹ MFCҪ·Щ MFC DLLӦóõϵͳĵǰòͬҪ·ӦıػԴ MFC100XXX.DLLйĸϢμ MSDN ĵй Redistributing Visual C++ applications (· Visual C++ Ӧó)½ڡ
+
+/////////////////////////////////////////////////////////////////////////////
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/SetIpofUSPDlg.cpp b/Labs/Lab2/requirements/src/vspr/vspr/SetIpofUSPDlg.cpp
new file mode 100644
index 0000000..4247dd7
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/SetIpofUSPDlg.cpp
@@ -0,0 +1,48 @@
+// SetIpofUSPDlg.cpp : ʵļ
+//
+
+#include "stdafx.h"
+#include "vspr.h"
+#include "SetIpofUSPDlg.h"
+#include "afxdialogex.h"
+
+
+// CSetIpofUSPDlg Ի
+
+IMPLEMENT_DYNAMIC(CSetIpofUSPDlg, CDialogEx)
+
+CSetIpofUSPDlg::CSetIpofUSPDlg(CWnd* pParent /*=NULL*/)
+ : CDialogEx(CSetIpofUSPDlg::IDD, pParent)
+{
+
+}
+
+CSetIpofUSPDlg::~CSetIpofUSPDlg()
+{
+}
+
+void CSetIpofUSPDlg::DoDataExchange(CDataExchange* pDX)
+{
+ CDialogEx::DoDataExchange(pDX);
+ DDX_Control(pDX, IDC_IPADDRESS, m_ctlIpAddr);
+}
+
+
+BEGIN_MESSAGE_MAP(CSetIpofUSPDlg, CDialogEx)
+ ON_BN_CLICKED(IDOK, &CSetIpofUSPDlg::OnBnClickedOk)
+END_MESSAGE_MAP()
+
+
+// CSetIpofUSPDlg Ϣ
+
+
+void CSetIpofUSPDlg::OnBnClickedOk()
+{
+ // TODO: ڴӿؼ֪ͨ
+ CDialogEx::OnOK();
+
+ BYTE b1,b2,b3,b4;
+ m_ctlIpAddr.GetAddress( b1, b2, b3, b4 );
+
+ sprintf_s(m_szIpAddr, "%d.%d.%d.%d", b1, b2, b3, b4 );
+}
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/SetIpofUSPDlg.h b/Labs/Lab2/requirements/src/vspr/vspr/SetIpofUSPDlg.h
new file mode 100644
index 0000000..4b1e11e
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/SetIpofUSPDlg.h
@@ -0,0 +1,25 @@
+#pragma once
+
+
+// CSetIpofUSPDlg Ի
+
+class CSetIpofUSPDlg : public CDialogEx
+{
+ DECLARE_DYNAMIC(CSetIpofUSPDlg)
+
+public:
+ CSetIpofUSPDlg(CWnd* pParent = NULL); // 캯
+ virtual ~CSetIpofUSPDlg();
+
+// Ի
+ enum { IDD = IDD_DLG_USP };
+
+protected:
+ virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV ֧
+
+ DECLARE_MESSAGE_MAP()
+public:
+ CIPAddressCtrl m_ctlIpAddr;
+ char m_szIpAddr[20];
+ afx_msg void OnBnClickedOk();
+};
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/UserImages.bmp b/Labs/Lab2/requirements/src/vspr/vspr/UserImages.bmp
new file mode 100644
index 0000000..affe657
Binary files /dev/null and b/Labs/Lab2/requirements/src/vspr/vspr/UserImages.bmp differ
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/Images/Bullet.gif b/Labs/Lab2/requirements/src/vspr/vspr/hlp/Images/Bullet.gif
new file mode 100644
index 0000000..090f96c
Binary files /dev/null and b/Labs/Lab2/requirements/src/vspr/vspr/hlp/Images/Bullet.gif differ
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/afx_hidd_color.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/afx_hidd_color.htm
new file mode 100644
index 0000000..2143ee7
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/afx_hidd_color.htm
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+(ѡɫԻ)
+
+
+
+
+
+
+
+
+
+
+
+ѡɫԻ
+
+
+
+<<ڴ˴дӦóضİ>>
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/afx_hidd_fileopen.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/afx_hidd_fileopen.htm
new file mode 100644
index 0000000..cf86fb9
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/afx_hidd_fileopen.htm
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
+
+(ļ->Ի)
+
+
+
+
+
+
+
+
+
+
+
+ļ->Ի
+
+
+
+ѡʹָҪļ:
+
+
+
+ļ
+
+
+
+ָҪļ˿г˴
+
+гļֶ͡ѡչļ
+
+
+
+гļ
+
+
+
+ָҪļ:
+
+
+
+<< ڴгӦóļ͡>>
+
+
+
+
+
+
+
+ָ <<Ӧó>> д洢ļ
+
+
+
+Ŀ¼
+
+
+
+ָ <<Ӧó>> д洢ļĿ¼
+
+
+
+
+
+
+
+˰ťӵijλãһµš
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/afx_hidd_filesave.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/afx_hidd_filesave.htm
new file mode 100644
index 0000000..92d6eeb
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/afx_hidd_filesave.htm
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+(ļ->ΪԻ)
+
+
+
+
+
+
+
+
+
+
+
+ļ->ΪԻ
+
+
+
+ѡʹָļƺλ:
+
+
+
+ļ
+
+
+
+ָһļòͬƱĵ<<Ӧó>>
+
+ļָ͡չ
+
+
+
+
+
+
+
+ָҪд洢ĵ
+
+
+
+Ŀ¼
+
+
+
+ָҪд洢ĵĿ¼
+
+
+
+
+
+
+
+˰ťӵijλãһµš
+
+
+
+<<ļ->ΪԻѡ
+
+ȡӦóͨ CFileDialog ʹõ OPENFILENAME ṹ OFN_ ־ѡѡ>>
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/afx_hidd_find.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/afx_hidd_find.htm
new file mode 100644
index 0000000..c7f82e9
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/afx_hidd_find.htm
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+(ҡԻ)
+
+
+
+
+
+
+
+
+
+
+
+ҡԻ
+
+
+
+<<ڴ˴дӦóضİ>>
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/afx_hidd_font.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/afx_hidd_font.htm
new file mode 100644
index 0000000..0ed2362
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/afx_hidd_font.htm
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+(ѡ塱Ի)
+
+
+
+
+
+
+
+
+
+
+
+ѡ塱Ի
+
+
+
+<<ڴ˴дӦóضİ>>
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/afx_hidd_newtypedlg.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/afx_hidd_newtypedlg.htm
new file mode 100644
index 0000000..fb76c06
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/afx_hidd_newtypedlg.htm
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+(ļ->½Ի)
+
+
+
+
+
+
+
+
+
+
+
+½ļԻ
+
+
+
+<<Ӧóֻ֧һĵͣɾ˰⡣>>
+
+
+
+ָҪĵ:
+
+
+
+<<ڴгӦóĵ>>
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/afx_hidd_replace.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/afx_hidd_replace.htm
new file mode 100644
index 0000000..afeb59b
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/afx_hidd_replace.htm
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+(滻Ի)
+
+
+
+
+
+
+
+
+
+
+
+滻Ի
+
+
+
+<<ڴ˴дӦóضİ>>
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/afx_hidp_default.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/afx_hidp_default.htm
new file mode 100644
index 0000000..9373b82
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/afx_hidp_default.htm
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+(ûа)
+
+
+
+
+
+
+
+
+
+
+
+ûа
+
+
+
+ûдϢİá
+
+
+
+<<ҪдضÿϢʾϢİ
+
+.hpj ļ [ALIAS] Ƴ AFX_HIDP_xxx ֵΪÿ AFX_HIDP_xxx ֵһ⡣磬AFX_HIDP_INVALID_FILENAME
+
+ЧļϢİ⡣>>
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/afx_hidw_dockbar_top.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/afx_hidw_dockbar_top.htm
new file mode 100644
index 0000000..fe64d64
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/afx_hidw_dockbar_top.htm
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+(ͣ)
+
+
+
+
+
+
+
+
+
+
+
+ͣ
+
+
+
+ṩΪ˷ÿͣĹΪӦóĬϹɽͣϳ˹ݿõĿռǡ
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/afx_hidw_status_bar.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/afx_hidw_status_bar.htm
new file mode 100644
index 0000000..0a3fdc1
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/afx_hidw_status_bar.htm
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+(״̬)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+״̬
+
+
+
+״̬ʾ <<Ӧó>> ڵĵײҪʾ״̬ʹ
+
+ͼ˵еġ״̬
+
+
+
+ʹüͷڸ˵еʱ״̬Բ˵IJ¹ťûͷ֮ǰͬʾðťϢ
+
+鿴˹ť˵ִиָӸùťƿȻͷ갴ť
+
+
+
+״̬ҲָʾЩ:
+
+
+
+ָʾ ˵
+
+
+
+CAP Caps Lock ״̬
+
+
+
+NUM Num Lock ״̬
+
+
+
+SCRL Scroll Lock ״̬
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/afx_hidw_toolbar.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/afx_hidw_toolbar.htm
new file mode 100644
index 0000000..a6c875b
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/afx_hidw_toolbar.htm
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ӦóڵĶʾλڲ˵档ṩ˶ <<Ӧó>> öֹߵĿʡ
+
+
+
+Ҫػʾ뵥ͼ˵еġ
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_app_about.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_app_about.htm
new file mode 100644
index 0000000..a36ee51
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_app_about.htm
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+(ڡ(˵))
+
+
+
+
+
+
+
+
+
+
+
+ڡ(˵)
+
+
+
+ʹôʾ <<Ӧó>> İȨͰ汾š
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_app_exit.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_app_exit.htm
new file mode 100644
index 0000000..e735e8b
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_app_exit.htm
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+(ļ->˳)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+˳(ļ˵)
+
+
+
+ʹôԽ <<Ӧó>> Ựʹ
+
+Ӧóơ˵еġرա<<Ӧó>> ʾиδĵ
+
+
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_context_help.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_context_help.htm
new file mode 100644
index 0000000..5b01831
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_context_help.htm
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+(->ʹð)
+
+
+
+
+
+
+
+
+
+
+
+İ
+
+
+
+
+
+ʹôԻȡй <<Ӧó>> ijЩֵİѡ
+
+ġİťʱָ뽫ΪһʺŵļͷȻ <<Ӧó>> еijλ(һť)
+
+йİ⽫ʾ
+
+
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_edit_clear.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_edit_clear.htm
new file mode 100644
index 0000000..f1d8fe8
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_edit_clear.htm
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+(༭->)
+
+
+
+
+
+
+
+
+
+
+
+(༭˵)
+
+
+
+<<ڴ˴дӦóضİ>>
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_edit_clear_all.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_edit_clear_all.htm
new file mode 100644
index 0000000..8a848c2
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_edit_clear_all.htm
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+(༭->ȫ)
+
+
+
+
+
+
+
+
+
+
+
+ȫ(༭˵)
+
+
+
+<<ڴ˴дӦóضİ>>
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_edit_copy.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_edit_copy.htm
new file mode 100644
index 0000000..0103f12
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_edit_copy.htm
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+(ơ(༭˵))
+
+
+
+
+
+
+
+
+
+
+
+ơ(༭˵)
+
+
+
+ʹôԽѡݸƵϡǰδѡݣá
+
+
+
+ݸƵ彫滻ǰ洢ڼݡ
+
+
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_edit_cut.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_edit_cut.htm
new file mode 100644
index 0000000..8442b5d
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_edit_cut.htm
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+(С(༭˵))
+
+
+
+
+
+
+
+
+
+
+
+С(༭˵)
+
+
+
+ʹôԴĵƳѡݣ䷽ڼϡǰδѡݣá
+
+
+
+ݼе彫滻ǰ洢ڼݡ
+
+
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_edit_find.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_edit_find.htm
new file mode 100644
index 0000000..ba97b24
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_edit_find.htm
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+(༭->ҡ)
+
+
+
+
+
+
+
+
+
+
+
+ҡ(༭˵)
+
+
+
+<<ڴ˴дӦóضİ>>
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_edit_paste.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_edit_paste.htm
new file mode 100644
index 0000000..c1d24e0
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_edit_paste.htm
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+(ճ(༭˵))
+
+
+
+
+
+
+
+
+
+
+
+ճ(༭˵)
+
+
+
+ʹôڲݵĸΪá
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_edit_redo.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_edit_redo.htm
new file mode 100644
index 0000000..8b6e64d
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_edit_redo.htm
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+((༭˵))
+
+
+
+
+
+
+
+
+
+
+
+(༭˵)
+
+
+
+<<ڴ˴дӦóضİ>>
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_edit_repeat.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_edit_repeat.htm
new file mode 100644
index 0000000..34ad928
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_edit_repeat.htm
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+(༭->ظ)
+
+
+
+
+
+
+
+
+
+
+
+ظ(༭˵)
+
+
+
+ʹôظϴִеı༭ظһظ˵
+
+ظ
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_edit_replace.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_edit_replace.htm
new file mode 100644
index 0000000..32848db
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_edit_replace.htm
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+(༭->滻)
+
+
+
+
+
+
+
+
+
+
+
+滻(༭˵)
+
+
+
+<<ڴ˴дӦóضİ>>
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_edit_undo.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_edit_undo.htm
new file mode 100644
index 0000000..198de67
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_edit_undo.htm
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+(/(༭˵))
+
+
+
+
+
+
+
+
+
+
+
+/(༭˵)
+
+
+
+<<ӦóġûIJͬӦĴ˰ı>>
+
+
+
+ʹôԳһ༭(п)һľݶ仯
+
+һ˵ϵġɡ
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_file_close.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_file_close.htm
new file mode 100644
index 0000000..de2d2d7
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_file_close.htm
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+(ļ->رա)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+رա(ļ˵)
+
+
+
+ڹرհĵдڡ<<Ӧó>> ڹرĵ֮ǰĵеĸġδ漴رĵʧϴα
+
+иġڹرδĵ֮ǰ<<Ӧó>> ʾΪԻͱĵ
+
+
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_file_mru_file1.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_file_mru_file1.htm
new file mode 100644
index 0000000..9c709cd
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_file_mru_file1.htm
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+(ļ 1234)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1, 2, 3, 4 (ļ˵)
+
+
+
+ʹáļ˵ײгֺļرյĸĵѡҪĵӦ֡
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_file_new.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_file_new.htm
new file mode 100644
index 0000000..805cf30
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_file_new.htm
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+(ļ->½)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+½(ļ˵)
+
+
+
+ʹô <<Ӧó>> дĵļ->½ԻѡҪļ͡<<Ӧó֧
+
+һĵͣƳǰһӡ>>
+
+
+
+ĵ
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_file_open.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_file_open.htm
new file mode 100644
index 0000000..213953b
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_file_open.htm
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+(ļ->)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+(ļ˵)
+
+
+
+ʹô´деĵһοɴĵʹ
+
+ڡ˵ڶĵ֮л 12...
+
+
+
+ʹ½ĵ
+
+
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_file_save.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_file_save.htm
new file mode 100644
index 0000000..5163aba
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_file_save.htm
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+(ļ->桱)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+桱(ļ˵)
+
+
+
+ʹôԽĵǰƺĿ¼档һαĵʱ<<Ӧó>> ʾΪԻԱĵ
+
+Ҫڱĵ֮ǰƺĿ¼ѡΪ
+
+
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_file_save_as.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_file_save_as.htm
new file mode 100644
index 0000000..d77930a
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_file_save_as.htm
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+(ļ->Ϊ)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Ϊ(ļ˵)
+
+
+
+ʹôԱĵ<<Ӧó>> ʾΪԻпĵ
+
+
+
+ҪƺĿ¼ĵʹ桱
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_file_send_mail.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_file_send_mail.htm
new file mode 100644
index 0000000..ba065bd
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_file_send_mail.htm
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+(͡(ļ˵))
+
+
+
+
+
+
+
+
+
+
+
+͡(ļ˵)
+
+
+
+ʹôͨʼͻĵʾ˻ĵʼڡȻд
+
+ռˡֶΡ⡱ֶεȣʼıɺ
+
+Ե͡ťʼ
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_help_index.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_help_index.htm
new file mode 100644
index 0000000..6e64e13
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_help_index.htm
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+((˵))
+
+
+
+
+
+
+
+
+
+
+
+(˵)
+
+
+
+ʹôʾʼĻʼĻУתʹ <<Ӧó>> ˵οϢ
+
+
+
+֮Ŀ¼ťɷصʼĻ
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_help_using.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_help_using.htm
new file mode 100644
index 0000000..f7cba50
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_help_using.htm
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+(ʹð(˵))
+
+
+
+
+
+
+
+
+
+
+
+ʹð(˵)
+
+
+
+ʹôԻùʹð˵
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_ht_caption.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_ht_caption.htm
new file mode 100644
index 0000000..90a3144
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_ht_caption.htm
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<<ڴʾӦóı>>
+
+
+
+λڴڵĶӦóĵơ
+
+
+
+Ҫƶڣ϶ע: ͨ϶ԻıƶԻ
+
+
+
+Ԫ:
+
+
+
+
Ӧóơ˵ť
+
+
+
+
ĵơ˵ť
+
+
+
+
ť
+
+
+
+
Сť
+
+
+
+
Ӧó
+
+
+
+
ĵ
+
+
+
+
ԭť
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_ht_nowhere.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_ht_nowhere.htm
new file mode 100644
index 0000000..97df7e7
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_ht_nowhere.htm
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+(ûа)
+
+
+
+
+
+
+
+
+
+
+
+ûа
+
+
+
+ûд˴İá
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_next_pane.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_next_pane.htm
new file mode 100644
index 0000000..90ed107
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_next_pane.htm
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+(һ)
+
+
+
+
+
+
+
+
+
+
+
+һ
+
+
+
+<<ڴ˴дӦóضİ>>
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_prev_pane.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_prev_pane.htm
new file mode 100644
index 0000000..9be20c0
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_prev_pane.htm
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+(һ)
+
+
+
+
+
+
+
+
+
+
+
+һ
+
+
+
+<<ڴ˴дӦóضİ>>
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_sc_close.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_sc_close.htm
new file mode 100644
index 0000000..b16e490
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_sc_close.htm
@@ -0,0 +1 @@
+(رա(ơ˵))رա(ơ˵)
ʹôԹرջڻԻ
˫ơ˵ͬѡرա
ע: Ϊĵ˶ڣĵơ˵ϵġرաһνرһڡʹáļ˵ϵġرաͬʱرдڡ
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_sc_maximize.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_sc_maximize.htm
new file mode 100644
index 0000000..b5f37eb
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_sc_maximize.htm
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+((ϵͳ˵))
+
+
+
+
+
+
+
+
+
+
+
+(ϵͳ˵)
+
+
+
+ʹôԷŴռÿռ䡣
+
+
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_sc_minimize.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_sc_minimize.htm
new file mode 100644
index 0000000..c34ba8f
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_sc_minimize.htm
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+(ϵͳС)
+
+
+
+
+
+
+
+
+
+
+
+С(Ӧóơ˵)
+
+
+
+ʹôԽ <<Ӧó>> СΪͼꡣ
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_sc_move.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_sc_move.htm
new file mode 100644
index 0000000..bc6df84
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_sc_move.htm
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+(ƶ(ơ˵))
+
+
+
+
+
+
+
+
+
+
+
+ƶ(ơ˵)
+
+
+
+ʹôʾһͷԱʹøüͷƶڻԻ
+
+
+
+ע: á
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_sc_nextwindow.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_sc_nextwindow.htm
new file mode 100644
index 0000000..d4b784c
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_sc_nextwindow.htm
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+(һڡ(ĵؼ˵))
+
+
+
+
+
+
+
+
+
+
+
+һڡ(ĵơ˵)
+
+
+
+ʹôлһĵڡ<<Ӧó>> ݴڵ˳ȷһڡ
+
+
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_sc_prevwindow.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_sc_prevwindow.htm
new file mode 100644
index 0000000..f1bea21
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_sc_prevwindow.htm
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+(һڡ(ĵơ˵))
+
+
+
+
+
+
+
+
+
+
+
+һڡ(ĵơ˵)
+
+
+
+ʹôлһĵڡ<<Ӧó>> ݴڵ˳ȷһڡ
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_sc_restore.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_sc_restore.htm
new file mode 100644
index 0000000..df41799
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_sc_restore.htm
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+(ԭ(ơ˵))
+
+
+
+
+
+
+
+
+
+
+
+ԭ(ơ˵)
+
+
+
+ʹôԽڻԭΪѡ
+
+С֮ǰĴСλá
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_sc_size.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_sc_size.htm
new file mode 100644
index 0000000..02c8f73
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_sc_size.htm
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+(С(ϵͳ˵))
+
+
+
+
+
+
+
+
+
+
+
+С(ϵͳ˵)
+
+
+
+ʹôʾһͷԱʹøüͷڵĴС
+
+
+
+ָΪͷ֮:
+
+
+
+1. һ(ͷҼͷϼͷ¼ͷ)ָƶҪƶı߿
+
+
+
+2. ƶñ߿
+
+
+
+3. ΪҪĴСʱ ENTER
+
+
+
+ע: á
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_sc_tasklist.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_sc_tasklist.htm
new file mode 100644
index 0000000..47bb6d4
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_sc_tasklist.htm
@@ -0,0 +1,100 @@
+
+
+
+
+
+
+
+
+(л(Ӧóơ˵))
+
+
+
+
+
+
+
+
+
+
+
+л(Ӧóơ˵)
+
+
+
+ʹôʾдӦóбʹô
+
+блرбϵӦó
+
+
+
+
+
+Իѡ
+
+
+
+ѡлʱʾһѡĶԻ:
+
+
+
+б
+
+
+
+ָҪлرյӦó
+
+
+
+л
+
+
+
+ʹѡӦó
+
+
+
+
+
+
+
+رѡӦó
+
+
+
+ȡ
+
+
+
+رб
+
+
+
+
+
+
+
+дӦóʹ֮صҿԿÿһѡӰСΪͼӦó
+
+
+
+ƽ
+
+
+
+ӦóгɲصĴڡѡӰСΪͼӦó
+
+
+
+ͼ
+
+
+
+ĻĵײСӦóͼꡣ
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_view_ruler.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_view_ruler.htm
new file mode 100644
index 0000000..3b32aca
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_view_ruler.htm
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+(ͼ->ߡ)
+
+
+
+
+
+
+
+
+
+
+
+ߡ(ͼ˵)
+
+
+
+<<ڴ˴дӦóضİ>>
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_view_status_bar.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_view_status_bar.htm
new file mode 100644
index 0000000..c5e1e34
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_view_status_bar.htm
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+(ͼ->״̬)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+״̬(ͼ˵)
+
+
+
+ʹôʾ״̬״̬ѡIJ˵
+
+µĹťִеIJԼ̵״̬ʾ
+
+״̬ʱò˵Աʾһѡбǡ
+
+
+
+йʹ״̬İϢ״̬
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_view_toolbar.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_view_toolbar.htm
new file mode 100644
index 0000000..44d9123
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_view_toolbar.htm
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+(ͼ->)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+(ͼ˵)
+
+
+
+ʹôʾع <<Ӧó>> еijЩ(
+
+ļ->)İťʾʱò˵Աʾһѡбǡ
+
+
+
+йʹùİϢ
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_window_all.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_window_all.htm
new file mode 100644
index 0000000..0407a6c
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_window_all.htm
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+(12...(ڡ˵))
+
+
+
+
+
+
+
+
+
+
+
+1, 2, ... (ڡ˵)
+
+
+
+<<Ӧó>> ڡڡ˵ĵײ
+
+ʾǰĵбڵĵǰʾһѡбǡӴбѡһĵʹ䴰ڳΪġ
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_window_arrange.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_window_arrange.htm
new file mode 100644
index 0000000..db36361
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_window_arrange.htm
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+(ڡ->ͼꡱ)
+
+
+
+
+
+
+
+
+
+
+
+ڡ->ͼꡱ
+
+
+
+ʹôڵĵײСڵͼꡣڵĵײһĵڣֻܿȫͼ꣬ΪЩͼ걻
+
+ĵڵסˡ
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_window_cascade.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_window_cascade.htm
new file mode 100644
index 0000000..f1a3155
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_window_cascade.htm
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+((ڡ˵))
+
+
+
+
+
+
+
+
+
+
+
+(ڡ˵)
+
+
+
+ʹôصʽжĴڡ
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_window_new.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_window_new.htm
new file mode 100644
index 0000000..6475524
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_window_new.htm
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+(½(ڡ˵))
+
+
+
+
+
+
+
+
+
+
+
+½(ڡ˵)
+
+
+
+ʹôԴͬ´ڡɴĵͬʱʾĵIJֻͬͼһеݣ
+
+ͬһĵĴڶᷴӳЩġ´ʱ´ڽΪڣʾдڵĶ
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_window_split.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_window_split.htm
new file mode 100644
index 0000000..051ebf6
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_window_split.htm
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+(֡(ڡ˵))
+
+
+
+
+
+
+
+
+
+
+
+֡(ڡ˵)
+
+
+
+ʹôԽڲֳɶȻʹϵļͷƶɺ갴ť Enter ǵλϡ Escape
+
+ Խԭеλϡ<<ڵĵӦóУ
+
+ͼ˵С>>
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_window_tile.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_window_tile.htm
new file mode 100644
index 0000000..a5e5a11
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_window_tile.htm
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+(ƽ̡(ڡ˵))
+
+
+
+
+
+
+
+
+
+
+
+ƽ̡(ڡ˵)
+
+
+
+ʹôԲصķʽжĴڡ
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_window_tile_horz.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_window_tile_horz.htm
new file mode 100644
index 0000000..e0426ab
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_window_tile_horz.htm
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+(ˮƽƽ̡(ڡ˵))
+
+
+
+
+
+
+
+
+
+
+
+ˮƽƽ̡(ڡ˵)
+
+
+
+ʹôԲصķʽ
+
+ֱжĴڡ
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_window_tile_vert.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_window_tile_vert.htm
new file mode 100644
index 0000000..755bd1a
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hid_window_tile_vert.htm
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+(ֱƽ̡(ڡ˵))
+
+
+
+
+
+
+
+
+
+
+
+ֱƽ̡(ڡ˵)
+
+
+
+ʹôԲжĴڡ
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/hidr_doc1type.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hidr_doc1type.htm
new file mode 100644
index 0000000..b91c892
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/hidr_doc1type.htm
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+(ĵ)
+
+
+
+
+
+
+
+
+
+
+
+ĵ
+
+
+
+<<ڴ˱дӦóضİṩûӦʹӦóĵĸ
+
+
+
+Ӧóֶ֧ĵͶϣÿͶһİ⣬ʹð ID
+
+ͨӦó MAKEHELP.BAT ļ
+
+ɵġߣҲ·ʽ MAKEHM:
+
+
+
+makehm IDR_HIDR_,0x2000 resource.h
+
+
+
+磬ijĵ͵ IDR_ Ϊ IDR_CHARTTYPE MAKEHM ɵİ ID
+
+ HIDR_CHARTTYPE
+
+
+
+ע: ӦóйظӦóֵ֧ĵһĵ͵İʹõ HIDR_DOC1TYPE ID
+
+Ӧó .hpj ļΪӦóһ HIDR_DOC1TYPE ӳ䵽ɸĵ͵ MAKEHM HIDR_>>
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/main_index.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/main_index.htm
new file mode 100644
index 0000000..7c92cc4
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/main_index.htm
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+(<<Ӧó>> )
+
+
+
+
+
+
+
+
+
+
+
+<<Ӧó>>
+
+
+
+...
+
+
+
+<<ڴ˴Ӧóضİ>>
+
+
+
+
+
+
+
+ļ˵
+
+
+
+༭˵
+
+
+
+
+ͼ˵
+
+
+
+
+˵
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/menu_edit.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/menu_edit.htm
new file mode 100644
index 0000000..c628006
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/menu_edit.htm
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+(༭˵)
+
+
+
+
+
+
+
+
+
+
+
+༭˵
+
+
+
+༭˵ṩ:
+
+
+
+
+
+
+
+
+
+ |
+
+תһ༭ |
+
+
+
+
+
+ |
+
+ĵɾݣƶ塣 |
+
+
+
+
+
+
+
+ |
+
+ݴĵƵ塣 |
+
+
+
+
+
+
+
+| ճ |
+
+ݴӼճĵС |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/menu_file.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/menu_file.htm
new file mode 100644
index 0000000..2dcccb6
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/menu_file.htm
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
+(ļ˵)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ļ˵
+
+
+
+ļ˵ṩ:
+
+
+
+
+
+
+
+
+
+| ½ |
+
+ĵ |
+
+
+
+
+
+
+
+ |
+
+ĵ |
+
+
+
+
+
+
+
+| ر |
+
+رմĵ |
+
+
+
+
+
+
+
+ |
+
+ʹͬļĵ |
+
+
+
+
+
+
+
+| Ϊ |
+
+Ѵĵ浽ָļ |
+
+
+
+
+
+
+
+
+
+| ˳ |
+
+˳ <<Ӧó>> |
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/menu_help.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/menu_help.htm
new file mode 100644
index 0000000..b87c05a
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/menu_help.htm
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+(˵)
+
+
+
+
+
+
+
+
+
+
+
+˵
+
+
+
+˵ṩЩɰʹôӦó:
+
+
+
+
+
+
+
+
+
+ |
+
+ṩͨԻð |
+
+
+
+
+
+
+
+ |
+
+ʾӦóİ汾š |
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/menu_view.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/menu_view.htm
new file mode 100644
index 0000000..d00cad8
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/menu_view.htm
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+(ͼ˵)
+
+
+
+
+
+
+
+
+
+
+
+ͼ˵
+
+
+
+ͼ˵ṩ:
+
+
+
+
+
+
+
+
+
+ |
+
+ʾع |
+
+
+
+
+
+
+
+| ״̬ |
+
+ʾ״̬ |
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/menu_window.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/menu_window.htm
new file mode 100644
index 0000000..3ef080a
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/menu_window.htm
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+
+
+(ڡ˵)
+
+
+
+
+
+
+
+
+
+
+
+ڡ˵
+
+
+
+ڡ˵ṩЩʹӦóжĵĶͼ:
+
+
+
+
+
+
+
+
+
+| ½ |
+
+鿴ͬһĵ´ڡ |
+
+
+
+
+
+
+
+ |
+
+صʽдڡ |
+
+
+
+
+
+
+
+| ƽ |
+
+Իصʽдڡ |
+
+
+
+
+
+
+
+| ͼ |
+
+ѹرմڵͼꡣ |
+
+
+
+
+
+
+| 1, 2, ... |
+
+תָڡ |
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/scrollbars.htm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/scrollbars.htm
new file mode 100644
index 0000000..921f400
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/scrollbars.htm
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ĵڵұԵ͵ױԵʾڵĹָʾĵеĴֱˮƽλáʹĵе֡
+
+
+
+<<ݹIJͬӦóеΪ>>
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/vspr.chm b/Labs/Lab2/requirements/src/vspr/vspr/hlp/vspr.chm
new file mode 100644
index 0000000..27a82ae
Binary files /dev/null and b/Labs/Lab2/requirements/src/vspr/vspr/hlp/vspr.chm differ
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/vspr.hhc b/Labs/Lab2/requirements/src/vspr/vspr/hlp/vspr.hhc
new file mode 100644
index 0000000..3e4f3df
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/vspr.hhc
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+ -
+
-
+
+ -
+
-
+
-
+
-
+
+ -
+
-
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/vspr.hhk b/Labs/Lab2/requirements/src/vspr/vspr/hlp/vspr.hhk
new file mode 100644
index 0000000..c0ba08a
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/vspr.hhk
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/hlp/vspr.hhp b/Labs/Lab2/requirements/src/vspr/vspr/hlp/vspr.hhp
new file mode 100644
index 0000000..2222711
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/hlp/vspr.hhp
@@ -0,0 +1,197 @@
+[OPTIONS]
+Auto Index=Yes
+Compatibility=1.1 or later
+Compiled file=vspr.chm
+Contents file=vspr.hhc
+Index file=vspr.hhk
+Default topic=main_index.htm
+Display compile progress=No
+Full-text search=Yes
+Language=0x0804 (壬й)
+
+
+[FILES]
+afx_hidd_color.htm
+afx_hidd_fileopen.htm
+afx_hidd_filesave.htm
+afx_hidd_find.htm
+afx_hidd_font.htm
+afx_hidd_newtypedlg.htm
+afx_hidd_replace.htm
+afx_hidp_default.htm
+afx_hidw_dockbar_top.htm
+afx_hidw_status_bar.htm
+afx_hidw_toolbar.htm
+hidr_doc1type.htm
+hid_app_about.htm
+hid_app_exit.htm
+hid_context_help.htm
+hid_edit_clear.htm
+hid_edit_clear_all.htm
+hid_edit_copy.htm
+hid_edit_cut.htm
+hid_edit_find.htm
+hid_edit_paste.htm
+hid_edit_redo.htm
+hid_edit_repeat.htm
+hid_edit_replace.htm
+hid_edit_undo.htm
+hid_file_close.htm
+hid_file_mru_file1.htm
+hid_file_new.htm
+hid_file_open.htm
+hid_file_save.htm
+hid_file_save_as.htm
+hid_file_send_mail.htm
+hid_help_index.htm
+hid_help_using.htm
+hid_ht_caption.htm
+hid_ht_nowhere.htm
+hid_next_pane.htm
+hid_prev_pane.htm
+hid_sc_close.htm
+hid_sc_maximize.htm
+hid_sc_minimize.htm
+hid_sc_move.htm
+hid_sc_nextwindow.htm
+hid_sc_prevwindow.htm
+hid_sc_restore.htm
+hid_sc_size.htm
+hid_sc_tasklist.htm
+hid_view_ruler.htm
+hid_view_status_bar.htm
+hid_view_toolbar.htm
+hid_window_all.htm
+hid_window_arrange.htm
+hid_window_cascade.htm
+hid_window_new.htm
+hid_window_split.htm
+hid_window_tile.htm
+hid_window_tile_horz.htm
+hid_window_tile_vert.htm
+main_index.htm
+menu_edit.htm
+menu_file.htm
+menu_help.htm
+menu_view.htm
+menu_window.htm
+scrollbars.htm
+
+[ALIAS]
+HIDR_MAINFRAME = main_index.htm
+
+main_index = main_index.htm
+afx_hidd_color = afx_hidd_color.htm
+afx_hidd_fileopen = afx_hidd_fileopen.htm
+afx_hidd_filesave = afx_hidd_filesave.htm
+afx_hidd_find = afx_hidd_find.htm
+afx_hidd_font = afx_hidd_font.htm
+afx_hidd_newtypedlg = afx_hidd_newtypedlg.htm
+afx_hidd_replace = afx_hidd_replace.htm
+AFX_HIDP_DEFAULT = AFX_HIDP_DEFAULT.htm
+afx_hidw_dockbar_top = afx_hidw_dockbar_top.htm
+afx_hidw_status_bar = afx_hidw_status_bar.htm
+afx_hidw_toolbar = afx_hidw_toolbar.htm
+hid_app_about = hid_app_about.htm
+hid_app_exit = hid_app_exit.htm
+hid_context_help = hid_context_help.htm
+hid_edit_clear = hid_edit_clear.htm
+hid_edit_clear_all = hid_edit_clear_all.htm
+hid_edit_copy = hid_edit_copy.htm
+hid_edit_cut = hid_edit_cut.htm
+hid_edit_find = hid_edit_find.htm
+hid_edit_paste = hid_edit_paste.htm
+hid_edit_redo = hid_edit_redo.htm
+hid_edit_repeat = hid_edit_repeat.htm
+hid_edit_replace = hid_edit_replace.htm
+hid_edit_undo = hid_edit_undo.htm
+hid_file_close = hid_file_close.htm
+hid_file_mru_file1 = hid_file_mru_file1.htm
+hid_file_new = hid_file_new.htm
+hid_file_open = hid_file_open.htm
+hid_file_save = hid_file_save.htm
+hid_file_save_as = hid_file_save_as.htm
+hid_file_send_mail = hid_file_send_mail.htm
+hid_help_index = hid_help_index.htm
+hid_help_using = hid_help_using.htm
+hid_ht_caption = hid_ht_caption.htm
+hid_ht_nowhere = hid_ht_nowhere.htm
+hid_next_pane = hid_next_pane.htm
+hid_prev_pane = hid_prev_pane.htm
+hid_sc_close = hid_sc_close.htm
+hid_sc_maximize = hid_sc_maximize.htm
+hid_sc_minimize = hid_sc_minimize.htm
+hid_sc_move = hid_sc_move.htm
+hid_sc_nextwindow = hid_sc_nextwindow.htm
+hid_sc_prevwindow = hid_sc_prevwindow.htm
+hid_sc_restore = hid_sc_restore.htm
+hid_sc_size = hid_sc_size.htm
+hid_sc_tasklist = hid_sc_tasklist.htm
+hid_view_ruler = hid_view_ruler.htm
+hid_view_status_bar = hid_view_status_bar.htm
+hid_view_toolbar = hid_view_toolbar.htm
+hid_window_all = hid_window_all.htm
+hid_window_arrange = hid_window_arrange.htm
+hid_window_cascade = hid_window_cascade.htm
+hid_window_new = hid_window_new.htm
+hid_window_split = hid_window_split.htm
+hid_window_tile = hid_window_tile.htm
+hid_window_tile_horz = hid_window_tile_horz.htm
+hid_window_tile_vert = hid_window_tile_vert.htm
+hidr_doc1type = hidr_doc1type.htm
+menu_edit = menu_edit.htm
+menu_file = menu_file.htm
+menu_help = menu_help.htm
+menu_view = menu_view.htm
+menu_window = menu_window.htm
+scrollbars = scrollbars.htm
+HIDD_ABOUTBOX = HID_APP_ABOUT.htm
+HID_HT_SIZE = HID_SC_SIZE.htm
+HID_HT_HSCROLL = scrollbars.htm
+HID_HT_VSCROLL = scrollbars.htm
+HID_HT_MINBUTTON = HID_SC_MINIMIZE.htm
+HID_HT_MAXBUTTON = HID_SC_MAXIMIZE.htm
+AFX_HIDP_INVALID_FILENAME = AFX_HIDP_DEFAULT.htm
+AFX_HIDP_FAILED_TO_OPEN_DOC = AFX_HIDP_DEFAULT.htm
+AFX_HIDP_FAILED_TO_SAVE_DOC = AFX_HIDP_DEFAULT.htm
+AFX_HIDP_ASK_TO_SAVE = AFX_HIDP_DEFAULT.htm
+AFX_HIDP_FAILED_TO_CREATE_DOC = AFX_HIDP_DEFAULT.htm
+AFX_HIDP_FILE_TOO_LARGE = AFX_HIDP_DEFAULT.htm
+AFX_HIDP_FAILED_TO_START_PRINT = AFX_HIDP_DEFAULT.htm
+AFX_HIDP_FAILED_TO_LAUNCH_HELP = AFX_HIDP_DEFAULT.htm
+AFX_HIDP_INTERNAL_FAILURE = AFX_HIDP_DEFAULT.htm
+AFX_HIDP_COMMAND_FAILURE = AFX_HIDP_DEFAULT.htm
+AFX_HIDP_PARSE_INT = AFX_HIDP_DEFAULT.htm
+AFX_HIDP_PARSE_REAL = AFX_HIDP_DEFAULT.htm
+AFX_HIDP_PARSE_INT_RANGE = AFX_HIDP_DEFAULT.htm
+AFX_HIDP_PARSE_REAL_RANGE = AFX_HIDP_DEFAULT.htm
+AFX_HIDP_PARSE_STRING_SIZE = AFX_HIDP_DEFAULT.htm
+AFX_HIDP_FAILED_INVALID_FORMAT = AFX_HIDP_DEFAULT.htm
+AFX_HIDP_FAILED_INVALID_PATH = AFX_HIDP_DEFAULT.htm
+AFX_HIDP_FAILED_DISK_FULL = AFX_HIDP_DEFAULT.htm
+AFX_HIDP_FAILED_ACCESS_READ = AFX_HIDP_DEFAULT.htm
+AFX_HIDP_FAILED_ACCESS_WRITE = AFX_HIDP_DEFAULT.htm
+AFX_HIDP_FAILED_IO_ERROR_READ = AFX_HIDP_DEFAULT.htm
+AFX_HIDP_FAILED_IO_ERROR_WRITE = AFX_HIDP_DEFAULT.htm
+AFX_HIDP_STATIC_OBJECT = AFX_HIDP_DEFAULT.htm
+AFX_HIDP_FAILED_TO_CONNECT = AFX_HIDP_DEFAULT.htm
+AFX_HIDP_SERVER_BUSY = AFX_HIDP_DEFAULT.htm
+AFX_HIDP_BAD_VERB = AFX_HIDP_DEFAULT.htm
+AFX_HIDP_FAILED_MEMORY_ALLOC = AFX_HIDP_DEFAULT.htm
+AFX_HIDP_FAILED_TO_NOTIFY = AFX_HIDP_DEFAULT.htm
+AFX_HIDP_FAILED_TO_LAUNCH = AFX_HIDP_DEFAULT.htm
+AFX_HIDP_ASK_TO_UPDATE = AFX_HIDP_DEFAULT.htm
+AFX_HIDP_FAILED_TO_UPDATE = AFX_HIDP_DEFAULT.htm
+AFX_HIDP_FAILED_TO_REGISTER = AFX_HIDP_DEFAULT.htm
+AFX_HIDP_FAILED_TO_AUTO_REGISTER = AFX_HIDP_DEFAULT.htm
+AFX_HIDW_DOCKBAR_BOTTOM = AFX_HIDW_DOCKBAR_TOP.HTM ; Same topic, 4 different possible hit tests
+AFX_HIDW_DOCKBAR_LEFT = AFX_HIDW_DOCKBAR_TOP.HTM ; Same topic, 4 different possible hit tests
+AFX_HIDW_DOCKBAR_RIGHT = AFX_HIDW_DOCKBAR_TOP.HTM ; Same topic, 4 different possible hit tests
+
+[MAP]
+#include HTMLDefines.h
+
+[TEXT POPUPS]
+HTMLDefines.h
+
+[INFOTYPES]
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/res/Toolbar.bmp b/Labs/Lab2/requirements/src/vspr/vspr/res/Toolbar.bmp
new file mode 100644
index 0000000..0556e00
Binary files /dev/null and b/Labs/Lab2/requirements/src/vspr/vspr/res/Toolbar.bmp differ
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/res/Toolbar256.bmp b/Labs/Lab2/requirements/src/vspr/vspr/res/Toolbar256.bmp
new file mode 100644
index 0000000..14bd422
Binary files /dev/null and b/Labs/Lab2/requirements/src/vspr/vspr/res/Toolbar256.bmp differ
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/res/vspr.ico b/Labs/Lab2/requirements/src/vspr/vspr/res/vspr.ico
new file mode 100644
index 0000000..d56fbcd
Binary files /dev/null and b/Labs/Lab2/requirements/src/vspr/vspr/res/vspr.ico differ
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/res/vspr.rc2 b/Labs/Lab2/requirements/src/vspr/vspr/res/vspr.rc2
new file mode 100644
index 0000000..34986e6
Binary files /dev/null and b/Labs/Lab2/requirements/src/vspr/vspr/res/vspr.rc2 differ
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/res/vsprDoc.ico b/Labs/Lab2/requirements/src/vspr/vspr/res/vsprDoc.ico
new file mode 100644
index 0000000..96365d4
Binary files /dev/null and b/Labs/Lab2/requirements/src/vspr/vspr/res/vsprDoc.ico differ
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/resource.h b/Labs/Lab2/requirements/src/vspr/vspr/resource.h
new file mode 100644
index 0000000..15560de
Binary files /dev/null and b/Labs/Lab2/requirements/src/vspr/vspr/resource.h differ
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/stdafx.cpp b/Labs/Lab2/requirements/src/vspr/vspr/stdafx.cpp
new file mode 100644
index 0000000..d96f61c
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/stdafx.cpp
@@ -0,0 +1,8 @@
+
+// stdafx.cpp : ֻļԴļ
+// vspr.pch ΪԤͷ
+// stdafx.obj ԤϢ
+
+#include "stdafx.h"
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/stdafx.h b/Labs/Lab2/requirements/src/vspr/vspr/stdafx.h
new file mode 100644
index 0000000..fac7631
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/stdafx.h
@@ -0,0 +1,58 @@
+
+// stdafx.h : ϵͳļİļ
+// Ǿʹõĵ
+// ضĿİļ
+
+#pragma once
+
+#ifndef _SECURE_ATL
+#define _SECURE_ATL 1
+#endif
+
+#ifndef VC_EXTRALEAN
+#define VC_EXTRALEAN // Windows ͷųʹõ
+#endif
+
+#include "targetver.h"
+
+#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // ijЩ CString 캯ʽ
+
+// ر MFC ijЩɷĺԵľϢ
+#define _AFX_ALL_WARNINGS
+
+#include // MFC ͱ
+#include // MFC չ
+
+
+#include // MFC Զ
+
+
+
+#ifndef _AFX_NO_OLE_SUPPORT
+#include // MFC Internet Explorer 4 ؼ֧
+#endif
+#ifndef _AFX_NO_AFXCMN_SUPPORT
+#include // MFC Windows ؼ֧
+#endif // _AFX_NO_AFXCMN_SUPPORT
+
+#include // Ϳؼ MFC ֧
+
+
+
+
+
+
+
+
+
+#ifdef _UNICODE
+#if defined _M_IX86
+#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
+#elif defined _M_X64
+#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
+#else
+#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
+#endif
+#endif
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/targetver.h b/Labs/Lab2/requirements/src/vspr/vspr/targetver.h
new file mode 100644
index 0000000..0afac5b
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/targetver.h
@@ -0,0 +1,8 @@
+#pragma once
+
+// SDKDDKVer.h ߰汾Ŀ Windows ƽ̨
+
+// ҪΪǰ Windows ƽ̨Ӧó WinSDKVer.h
+// WIN32_WINNT ΪҪֵ֧ƽ̨Ȼٰ SDKDDKVer.h
+
+#include
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/vspr.aps b/Labs/Lab2/requirements/src/vspr/vspr/vspr.aps
new file mode 100644
index 0000000..d58cb2f
Binary files /dev/null and b/Labs/Lab2/requirements/src/vspr/vspr/vspr.aps differ
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/vspr.cpp b/Labs/Lab2/requirements/src/vspr/vspr/vspr.cpp
new file mode 100644
index 0000000..f79020f
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/vspr.cpp
@@ -0,0 +1,213 @@
+
+// vspr.cpp : ӦóΪ
+//
+
+#include "stdafx.h"
+#include "afxwinappex.h"
+#include "afxdialogex.h"
+#include "vspr.h"
+#include "MainFrm.h"
+
+#include "vsprDoc.h"
+#include "vsprView.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+
+// CvsprApp
+
+BEGIN_MESSAGE_MAP(CvsprApp, CWinAppEx)
+ ON_COMMAND(ID_APP_ABOUT, &CvsprApp::OnAppAbout)
+ // ļıĵ
+ ON_COMMAND(ID_FILE_NEW, &CWinAppEx::OnFileNew)
+ ON_COMMAND(ID_FILE_OPEN, &CWinAppEx::OnFileOpen)
+END_MESSAGE_MAP()
+
+
+// CvsprApp
+
+CvsprApp::CvsprApp()
+{
+ EnableHtmlHelp();
+
+ m_bHiColorIcons = TRUE;
+
+ // ֧
+ m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_ALL_ASPECTS;
+#ifdef _MANAGED
+ // Ӧóùʱ֧(/clr)ģ:
+ // 1) д˸ãֲ֧
+ // 2) ĿУ밴˳ System.Windows.Forms á
+ System::Windows::Forms::Application::SetUnhandledExceptionMode(System::Windows::Forms::UnhandledExceptionMode::ThrowException);
+#endif
+
+ // TODO: Ӧó ID ַ滻ΪΨһ ID ַַʽ
+ //Ϊ CompanyName.ProductName.SubProduct.VersionInformation
+ SetAppID(_T("vspr.AppID.NoVersion"));
+
+ // TODO: ڴ˴ӹ룬
+ // Ҫijʼ InitInstance
+}
+
+// Ψһһ CvsprApp
+
+CvsprApp theApp;
+
+
+// CvsprApp ʼ
+
+BOOL CvsprApp::InitInstance()
+{
+ // һ Windows XP ϵӦó嵥ָҪ
+ // ʹ ComCtl32.dll 汾 6 ߰汾ÿӻʽ
+ //Ҫ InitCommonControlsEx()ڡ
+ INITCOMMONCONTROLSEX InitCtrls;
+ InitCtrls.dwSize = sizeof(InitCtrls);
+ // ΪҪӦóʹõ
+ // ؼࡣ
+ InitCtrls.dwICC = ICC_WIN95_CLASSES;
+ InitCommonControlsEx(&InitCtrls);
+
+ CWinAppEx::InitInstance();
+
+
+ // ʼ OLE
+ if (!AfxOleInit())
+ {
+ AfxMessageBox(IDP_OLE_INIT_FAILED);
+ return FALSE;
+ }
+
+ AfxEnableControlContainer();
+
+ EnableTaskbarInteraction(FALSE);
+
+ // ʹ RichEdit ؼҪ AfxInitRichEdit2()
+ // AfxInitRichEdit2();
+
+ // ʼ
+ // δʹЩܲϣС
+ // տִļĴСӦƳ
+ // Ҫضʼ
+ // ڴ洢õע
+ // TODO: Ӧʵĸַ
+ // Ϊ˾֯
+ SetRegistryKey(_T("ӦóɵıӦó"));
+ LoadStdProfileSettings(4); // ر INI ļѡ( MRU)
+
+
+ InitContextMenuManager();
+
+ InitKeyboardManager();
+
+ InitTooltipManager();
+ CMFCToolTipInfo ttParams;
+ ttParams.m_bVislManagerTheme = TRUE;
+ theApp.GetTooltipManager()->SetTooltipParams(AFX_TOOLTIP_TYPE_ALL,
+ RUNTIME_CLASS(CMFCToolTipCtrl), &ttParams);
+
+ // עӦóĵģ塣ĵģ
+ // ĵܴںͼ֮
+ CSingleDocTemplate* pDocTemplate;
+ pDocTemplate = new CSingleDocTemplate(
+ IDR_MAINFRAME,
+ RUNTIME_CLASS(CvsprDoc),
+ RUNTIME_CLASS(CMainFrame), // SDI ܴ
+ RUNTIME_CLASS(CvsprView));
+ if (!pDocTemplate)
+ return FALSE;
+ AddDocTemplate(pDocTemplate);
+
+
+ // shell DDEļ
+ CCommandLineInfo cmdInfo;
+ ParseCommandLine(cmdInfo);
+
+
+
+ // ָ
+ // /RegServer/Register/Unregserver /Unregister Ӧó FALSE
+ if (!ProcessShellCommand(cmdInfo))
+ return FALSE;
+
+ // Ψһһѳʼʾи
+ m_pMainWnd->ShowWindow(SW_SHOW);
+ m_pMainWnd->UpdateWindow();
+ // кʱŵ DragAcceptFiles
+ // SDI ӦóУӦ ProcessShellCommand ֮
+ return TRUE;
+}
+
+int CvsprApp::ExitInstance()
+{
+ //TODO: ӵĸԴ
+ AfxOleTerm(FALSE);
+
+ return CWinAppEx::ExitInstance();
+}
+
+// CvsprApp Ϣ
+
+
+// Ӧóڡ˵ CAboutDlg Ի
+
+class CAboutDlg : public CDialogEx
+{
+public:
+ CAboutDlg();
+
+// Ի
+ enum { IDD = IDD_ABOUTBOX };
+
+protected:
+ virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV ֧
+
+// ʵ
+protected:
+ DECLARE_MESSAGE_MAP()
+};
+
+CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD)
+{
+}
+
+void CAboutDlg::DoDataExchange(CDataExchange* pDX)
+{
+ CDialogEx::DoDataExchange(pDX);
+}
+
+BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)
+END_MESSAGE_MAP()
+
+// жԻӦó
+void CvsprApp::OnAppAbout()
+{
+ CAboutDlg aboutDlg;
+ aboutDlg.DoModal();
+}
+
+// CvsprApp Զ/淽
+
+void CvsprApp::PreLoadState()
+{
+ BOOL bNameValid;
+ CString strName;
+ bNameValid = strName.LoadString(IDS_EDIT_MENU);
+ ASSERT(bNameValid);
+ GetContextMenuManager()->AddMenu(strName, IDR_POPUP_EDIT);
+}
+
+void CvsprApp::LoadCustomState()
+{
+}
+
+void CvsprApp::SaveCustomState()
+{
+}
+
+// CvsprApp Ϣ
+
+
+
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/vspr.h b/Labs/Lab2/requirements/src/vspr/vspr/vspr.h
new file mode 100644
index 0000000..a98cd9e
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/vspr.h
@@ -0,0 +1,40 @@
+
+// vspr.h : vspr Ӧóͷļ
+//
+#pragma once
+
+#ifndef __AFXWIN_H__
+ #error "ڰļ֮ǰstdafx.h PCH ļ"
+#endif
+
+#include "resource.h" //
+
+
+// CvsprApp:
+// йشʵ֣ vspr.cpp
+//
+
+class CvsprApp : public CWinAppEx
+{
+public:
+ CvsprApp();
+
+
+// д
+public:
+ virtual BOOL InitInstance();
+ virtual int ExitInstance();
+
+// ʵ
+ UINT m_nAppLook;
+ BOOL m_bHiColorIcons;
+
+ virtual void PreLoadState();
+ virtual void LoadCustomState();
+ virtual void SaveCustomState();
+
+ afx_msg void OnAppAbout();
+ DECLARE_MESSAGE_MAP()
+};
+
+extern CvsprApp theApp;
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/vspr.rc b/Labs/Lab2/requirements/src/vspr/vspr/vspr.rc
new file mode 100644
index 0000000..8e5746d
Binary files /dev/null and b/Labs/Lab2/requirements/src/vspr/vspr/vspr.rc differ
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/vspr.vcxproj b/Labs/Lab2/requirements/src/vspr/vspr/vspr.vcxproj
new file mode 100644
index 0000000..3bec10e
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/vspr.vcxproj
@@ -0,0 +1,455 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+
+ {52B64FA8-32A0-49D7-BDF5-26AE8BD35E87}
+ vspr
+ MFCProj
+
+
+
+ Application
+ true
+ Unicode
+ Dynamic
+
+
+ Application
+ false
+ true
+ Unicode
+ Dynamic
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ false
+
+
+
+ Use
+ Level3
+ Disabled
+ WIN32;_WINDOWS;_DEBUG;%(PreprocessorDefinitions)
+
+
+ Windows
+ true
+
+
+ false
+ true
+ _DEBUG;%(PreprocessorDefinitions)
+
+
+ 0x0804
+ _DEBUG;%(PreprocessorDefinitions)
+ $(IntDir);%(AdditionalIncludeDirectories)
+
+
+
+
+ Level3
+ Use
+ MaxSpeed
+ true
+ true
+ WIN32;_WINDOWS;NDEBUG;%(PreprocessorDefinitions)
+
+
+ Windows
+ true
+ true
+ true
+
+
+ false
+ true
+ NDEBUG;%(PreprocessorDefinitions)
+
+
+ 0x0804
+ NDEBUG;%(PreprocessorDefinitions)
+ $(IntDir);%(AdditionalIncludeDirectories)
+
+
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+
+
+ Document
+ $(OutDir)vspr.chm;%(Outputs)
+ hlp\HTMLDefines.h;%(AdditionalInputs)
+ start /wait hhc "hlp\vspr.hhp"
+if not exist "hlp\vspr.chm" goto :HelpError
+copy "hlp\vspr.chm" "$(OutDir)vspr.chm"
+goto :HelpDone
+:HelpError
+echo hlp\vspr.hhp(1) : error:创建帮助文件时遇到问题
+echo.
+:HelpDone
+echo.
+
+ 正在生成帮助文件...
+ $(OutDir)vspr.chm;%(Outputs)
+ hlp\HTMLDefines.h;%(AdditionalInputs)
+ start /wait hhc "hlp\vspr.hhp"
+if not exist "hlp\vspr.chm" goto :HelpError
+copy "hlp\vspr.chm" "$(OutDir)vspr.chm"
+goto :HelpDone
+:HelpError
+echo hlp\vspr.hhp(1) : error:创建帮助文件时遇到问题
+echo.
+:HelpDone
+echo.
+
+ 正在生成帮助文件...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ hlp\HTMLDefines.h;%(Outputs)
+ echo // 生成的帮助映射文件。使用者为vspr.HHP. > "hlp\HTMLDefines.h"
+echo. > "hlp\HTMLDefines.h"
+echo // 命令(ID_* 和 IDM_*) >> "hlp\HTMLDefines.h"
+makehm /h ID_,HID_,0x10000 IDM_,HIDM_,0x10000 "%(FullPath)" >> "hlp\HTMLDefines.h"
+echo. >> "hlp\HTMLDefines.h"
+echo // 提示(IDP_*) >> "hlp\HTMLDefines.h"
+makehm /h IDP_,HIDP_,0x30000 "%(FullPath)" >> "hlp\HTMLDefines.h"
+echo. >> "hlp\HTMLDefines.h"
+echo // 资源(IDR_*) >> "hlp\HTMLDefines.h"
+makehm /h IDR_,HIDR_,0x20000 "%(FullPath)" >> "hlp\HTMLDefines.h"
+echo. >> "hlp\HTMLDefines.h"
+echo // 对话框(IDD_*) >> "hlp\HTMLDefines.h"
+makehm /h IDD_,HIDD_,0x20000 "%(FullPath)" >> "hlp\HTMLDefines.h"
+echo. >> "hlp\HTMLDefines.h"
+echo // 框架控件(IDW_*) >> "hlp\HTMLDefines.h"
+makehm /h /a afxhh.h IDW_,HIDW_,0x50000 "%(FullPath)" >> "hlp\HTMLDefines.h"
+
+ 正在生成帮助编译器的映射文件...
+ hlp\HTMLDefines.h;%(Outputs)
+ echo // 生成的帮助映射文件。使用者为vspr.HHP. > "hlp\HTMLDefines.h"
+echo. > "hlp\HTMLDefines.h"
+echo // 命令(ID_* 和 IDM_*) >> "hlp\HTMLDefines.h"
+makehm /h ID_,HID_,0x10000 IDM_,HIDM_,0x10000 "%(FullPath)" >> "hlp\HTMLDefines.h"
+echo. >> "hlp\HTMLDefines.h"
+echo // 提示(IDP_*) >> "hlp\HTMLDefines.h"
+makehm /h IDP_,HIDP_,0x30000 "%(FullPath)" >> "hlp\HTMLDefines.h"
+echo. >> "hlp\HTMLDefines.h"
+echo // 资源(IDR_*) >> "hlp\HTMLDefines.h"
+makehm /h IDR_,HIDR_,0x20000 "%(FullPath)" >> "hlp\HTMLDefines.h"
+echo. >> "hlp\HTMLDefines.h"
+echo // 对话框(IDD_*) >> "hlp\HTMLDefines.h"
+makehm /h IDD_,HIDD_,0x20000 "%(FullPath)" >> "hlp\HTMLDefines.h"
+echo. >> "hlp\HTMLDefines.h"
+echo // 框架控件(IDW_*) >> "hlp\HTMLDefines.h"
+makehm /h /a afxhh.h IDW_,HIDW_,0x50000 "%(FullPath)" >> "hlp\HTMLDefines.h"
+
+ 正在生成帮助编译器的映射文件...
+
+
+
+
+
+
+
+
+
+
+
+ NotUsing
+
+
+ NotUsing
+
+
+
+ NotUsing
+
+
+ NotUsing
+
+
+ NotUsing
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Create
+ Create
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/vspr.vcxproj.filters b/Labs/Lab2/requirements/src/vspr/vspr/vspr.vcxproj.filters
new file mode 100644
index 0000000..0bc658c
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/vspr.vcxproj.filters
@@ -0,0 +1,432 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hpp;hxx;hm;inl;inc;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+ {8ac95954-76a1-4ed8-91af-bcea37585668}
+ hhp;hhc;hhk;gif;jpg
+
+
+ {3dd02135-781b-48bb-bb7f-9d5ea658e60f}
+ htm;html
+
+
+
+
+
+ 资源文件
+
+
+ 资源文件
+
+
+ 资源文件
+
+
+ 资源文件
+
+
+ 资源文件
+
+
+ 资源文件
+
+
+ HTML 帮助文件
+
+
+ HTML 帮助文件
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ HTML 帮助主题
+
+
+ 资源文件
+
+
+
+
+ 头文件
+
+
+ 头文件
+
+
+ 头文件
+
+
+ 头文件
+
+
+ 头文件
+
+
+ 头文件
+
+
+ 头文件
+
+
+ 头文件
+
+
+ 头文件
+
+
+ 头文件
+
+
+ 头文件
+
+
+ 头文件
+
+
+ 头文件
+
+
+ 头文件
+
+
+ 头文件
+
+
+ 头文件
+
+
+ 头文件
+
+
+ 头文件
+
+
+ 头文件
+
+
+ 头文件
+
+
+ 头文件
+
+
+ 头文件
+
+
+ 头文件
+
+
+ 头文件
+
+
+ 头文件
+
+
+ 头文件
+
+
+ 头文件
+
+
+ 头文件
+
+
+ 头文件
+
+
+ 头文件
+
+
+
+
+ 源文件
+
+
+ 源文件
+
+
+ 源文件
+
+
+ 源文件
+
+
+ 源文件
+
+
+ 源文件
+
+
+ 源文件
+
+
+ 源文件
+
+
+ 源文件
+
+
+ 源文件
+
+
+ 源文件
+
+
+ 源文件
+
+
+ 源文件
+
+
+ 源文件
+
+
+ 源文件
+
+
+ 源文件
+
+
+ 源文件
+
+
+ 源文件
+
+
+ 源文件
+
+
+ 源文件
+
+
+ 源文件
+
+
+ 源文件
+
+
+ 源文件
+
+
+ 源文件
+
+
+ 源文件
+
+
+
+
+ 资源文件
+
+
+
+
+ HTML 帮助文件
+
+
+ 头文件
+
+
+
\ No newline at end of file
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/vspr.vcxproj.user b/Labs/Lab2/requirements/src/vspr/vspr/vspr.vcxproj.user
new file mode 100644
index 0000000..3f03091
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/vspr.vcxproj.user
@@ -0,0 +1,6 @@
+
+
+
+ false
+
+
\ No newline at end of file
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/vsprDoc.cpp b/Labs/Lab2/requirements/src/vspr/vspr/vsprDoc.cpp
new file mode 100644
index 0000000..811c505
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/vsprDoc.cpp
@@ -0,0 +1,182 @@
+
+// vsprDoc.cpp : CvsprDoc ʵ
+//
+
+#include "stdafx.h"
+// SHARED_HANDLERS ʵԤͼɸѡ
+// ATL Ŀнж壬Ŀĵ롣
+#ifndef SHARED_HANDLERS
+#include "vspr.h"
+#endif
+
+#include "vsprDoc.h"
+#include
+#include
+using namespace std;
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+// CvsprDoc
+
+IMPLEMENT_DYNCREATE(CvsprDoc, CDocument)
+
+BEGIN_MESSAGE_MAP(CvsprDoc, CDocument)
+END_MESSAGE_MAP()
+
+
+// CvsprDoc /
+
+CvsprDoc::CvsprDoc()
+{
+ // TODO: ڴһԹ
+#if 0
+ m_pBuf = NULL;
+ m_nLen = 0;
+ m_nMaxLen = 1024;
+
+ {
+ // ԣ
+ char buf[100];
+ for( int i = 0; i < 100; i++ )
+ {
+ buf[i] = i%2;
+ }
+
+ setShowBuf(buf, 100 );
+ }
+#endif
+}
+
+CvsprDoc::~CvsprDoc()
+{
+#if 0
+ if( m_pBuf )
+ {
+ delete[] m_pBuf;
+ m_pBuf = NULL;
+ m_nLen = 0;
+ }
+#endif
+}
+
+BOOL CvsprDoc::OnNewDocument()
+{
+ if (!CDocument::OnNewDocument())
+ return FALSE;
+
+ // TODO: ڴ³ʼ
+ // (SDI ĵøĵ)
+
+ return TRUE;
+}
+
+
+int CvsprDoc::setShowBuf( char *pBuf, int len )
+{
+#if 0
+ try
+ {
+ if( !m_pBuf )
+ {
+ m_pBuf = new char[m_nMaxLen];
+ }
+ }
+ catch( bad_alloc &ba )
+ {
+ return 0;
+ }
+ m_nLen = len > m_nMaxLen ? m_nMaxLen : len;
+ memcpy( m_pBuf, pBuf, m_nLen );
+ return m_nLen;
+#endif
+ return 0;
+}
+
+
+
+// CvsprDoc л
+
+void CvsprDoc::Serialize(CArchive& ar)
+{
+ if (ar.IsStoring())
+ {
+ // TODO: ڴӴ洢
+ }
+ else
+ {
+ // TODO: ڴӼش
+ }
+}
+
+#ifdef SHARED_HANDLERS
+
+// ͼ֧
+void CvsprDoc::OnDrawThumbnail(CDC& dc, LPRECT lprcBounds)
+{
+ // Ĵ˴Իĵ
+ dc.FillSolidRect(lprcBounds, RGB(255, 255, 255));
+
+ CString strText = _T("TODO: implement thumbnail drawing here");
+ LOGFONT lf;
+
+ CFont* pDefaultGUIFont = CFont::FromHandle((HFONT) GetStockObject(DEFAULT_GUI_FONT));
+ pDefaultGUIFont->GetLogFont(&lf);
+ lf.lfHeight = 36;
+
+ CFont fontDraw;
+ fontDraw.CreateFontIndirect(&lf);
+
+ CFont* pOldFont = dc.SelectObject(&fontDraw);
+ dc.DrawText(strText, lprcBounds, DT_CENTER | DT_WORDBREAK);
+ dc.SelectObject(pOldFont);
+}
+
+// ֧
+void CvsprDoc::InitializeSearchContent()
+{
+ CString strSearchContent;
+ // ĵݡ
+ // ݲӦɡ;ָ
+
+ // : strSearchContent = _T("point;rectangle;circle;ole object;")
+ SetSearchContent(strSearchContent);
+}
+
+void CvsprDoc::SetSearchContent(const CString& value)
+{
+ if (value.IsEmpty())
+ {
+ RemoveChunk(PKEY_Search_Contents.fmtid, PKEY_Search_Contents.pid);
+ }
+ else
+ {
+ CMFCFilterChunkValueImpl *pChunk = NULL;
+ ATLTRY(pChunk = new CMFCFilterChunkValueImpl);
+ if (pChunk != NULL)
+ {
+ pChunk->SetTextValue(PKEY_Search_Contents, value, CHUNK_TEXT);
+ SetChunkValue(pChunk);
+ }
+ }
+}
+
+#endif // SHARED_HANDLERS
+
+// CvsprDoc
+
+#ifdef _DEBUG
+void CvsprDoc::AssertValid() const
+{
+ CDocument::AssertValid();
+}
+
+void CvsprDoc::Dump(CDumpContext& dc) const
+{
+ CDocument::Dump(dc);
+}
+#endif //_DEBUG
+
+
+// CvsprDoc
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/vsprDoc.h b/Labs/Lab2/requirements/src/vspr/vspr/vsprDoc.h
new file mode 100644
index 0000000..6dfe853
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/vsprDoc.h
@@ -0,0 +1,55 @@
+
+// vsprDoc.h : CvsprDoc Ľӿ
+//
+
+
+#pragma once
+
+
+class CvsprDoc : public CDocument
+{
+protected: // л
+ CvsprDoc();
+ DECLARE_DYNCREATE(CvsprDoc)
+
+//
+public:
+ // clientʾIJ.
+ // m_nLen=0ʱûݣʾ
+#if 0
+ char *m_pBuf;
+ int m_nLen;
+ int m_nMaxLen; // 1024أ
+#endif
+//
+public:
+ // ʵʾıس
+ int setShowBuf( char *pBuf, int len );
+// д
+public:
+ virtual BOOL OnNewDocument();
+ virtual void Serialize(CArchive& ar);
+#ifdef SHARED_HANDLERS
+ virtual void InitializeSearchContent();
+ virtual void OnDrawThumbnail(CDC& dc, LPRECT lprcBounds);
+#endif // SHARED_HANDLERS
+
+// ʵ
+public:
+ virtual ~CvsprDoc();
+#ifdef _DEBUG
+ virtual void AssertValid() const;
+ virtual void Dump(CDumpContext& dc) const;
+#endif
+
+protected:
+
+// ɵϢӳ亯
+protected:
+ DECLARE_MESSAGE_MAP()
+
+#ifdef SHARED_HANDLERS
+ // Ϊݵ Helper
+ void SetSearchContent(const CString& value);
+#endif // SHARED_HANDLERS
+};
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/vsprView.cpp b/Labs/Lab2/requirements/src/vspr/vspr/vsprView.cpp
new file mode 100644
index 0000000..9b272a4
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/vsprView.cpp
@@ -0,0 +1,130 @@
+
+// vsprView.cpp : CvsprView ʵ
+//
+
+#include "stdafx.h"
+// SHARED_HANDLERS ʵԤͼɸѡ
+// ATL Ŀнж壬Ŀĵ롣
+#ifndef SHARED_HANDLERS
+#include "vspr.h"
+#endif
+
+#include "vsprDoc.h"
+#include "vsprView.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+
+// CvsprView
+
+IMPLEMENT_DYNCREATE(CvsprView, CScrollView)
+
+BEGIN_MESSAGE_MAP(CvsprView, CScrollView)
+ ON_WM_CONTEXTMENU()
+ ON_WM_RBUTTONUP()
+END_MESSAGE_MAP()
+
+// CvsprView /
+
+CvsprView::CvsprView()
+{
+ // TODO: ڴ˴ӹ
+
+}
+
+CvsprView::~CvsprView()
+{
+}
+
+BOOL CvsprView::PreCreateWindow(CREATESTRUCT& cs)
+{
+ // TODO: ڴ˴ͨ
+ // CREATESTRUCT cs Ĵʽ
+
+ return CScrollView::PreCreateWindow(cs);
+}
+
+// CvsprView
+
+void CvsprView::OnDraw(CDC *pDC)
+{
+ CvsprDoc* pDoc = GetDocument();
+ ASSERT_VALID(pDoc);
+ if (!pDoc)
+ return;
+
+ // TODO: ڴ˴Ϊӻƴ
+#if 0
+ if( pDoc->m_nLen )
+ {
+ // ʼƲ.
+ int x = 0, y = 100;
+ pDC->MoveTo( x, y ); // ʼλΪ.
+ for( int i = 0; i < pDoc->m_nLen; i++ )
+ {
+ if( pDoc->m_pBuf[i] == 0 )
+ {
+ y = 100;
+ pDC->LineTo( x, y );
+ pDC->LineTo( x+10, y );
+ }
+ else
+ {
+ y = 10;
+ pDC->LineTo( x, y );
+ pDC->LineTo( x+10, y );
+ }
+ x += 10;
+ }
+ }
+#endif
+}
+
+void CvsprView::OnInitialUpdate()
+{
+ CScrollView::OnInitialUpdate();
+
+ CSize sizeTotal;
+ // TODO: ͼĺϼƴС
+ sizeTotal.cx = sizeTotal.cy = 100;
+ SetScrollSizes(MM_TEXT, sizeTotal);
+}
+
+void CvsprView::OnRButtonUp(UINT /* nFlags */, CPoint point)
+{
+ ClientToScreen(&point);
+ OnContextMenu(this, point);
+}
+
+void CvsprView::OnContextMenu(CWnd* /* pWnd */, CPoint point)
+{
+#ifndef SHARED_HANDLERS
+ theApp.GetContextMenuManager()->ShowPopupMenu(IDR_POPUP_EDIT, point.x, point.y, this, TRUE);
+#endif
+}
+
+
+// CvsprView
+
+#ifdef _DEBUG
+void CvsprView::AssertValid() const
+{
+ CScrollView::AssertValid();
+}
+
+void CvsprView::Dump(CDumpContext& dc) const
+{
+ CScrollView::Dump(dc);
+}
+
+CvsprDoc* CvsprView::GetDocument() const // ǵ汾
+{
+ ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CvsprDoc)));
+ return (CvsprDoc*)m_pDocument;
+}
+#endif //_DEBUG
+
+
+// CvsprView Ϣ
diff --git a/Labs/Lab2/requirements/src/vspr/vspr/vsprView.h b/Labs/Lab2/requirements/src/vspr/vspr/vsprView.h
new file mode 100644
index 0000000..9db2071
--- /dev/null
+++ b/Labs/Lab2/requirements/src/vspr/vspr/vsprView.h
@@ -0,0 +1,50 @@
+
+// vsprView.h : CvsprView Ľӿ
+//
+
+#pragma once
+
+
+class CvsprView : public CScrollView
+{
+protected: // л
+ CvsprView();
+ DECLARE_DYNCREATE(CvsprView)
+
+//
+public:
+ CvsprDoc* GetDocument() const;
+
+//
+public:
+
+// д
+public:
+ virtual void OnDraw(CDC* pDC); // дԻƸͼ
+ virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
+protected:
+ virtual void OnInitialUpdate(); // һε
+
+// ʵ
+public:
+ virtual ~CvsprView();
+#ifdef _DEBUG
+ virtual void AssertValid() const;
+ virtual void Dump(CDumpContext& dc) const;
+#endif
+
+protected:
+
+// ɵϢӳ亯
+protected:
+ afx_msg void OnFilePrintPreview();
+ afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
+ afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
+ DECLARE_MESSAGE_MAP()
+};
+
+#ifndef _DEBUG // vsprView.cpp еĵ汾
+inline CvsprDoc* CvsprView::GetDocument() const
+ { return reinterpret_cast(m_pDocument); }
+#endif
+
diff --git a/Labs/Lab2/tmp/pcd.exe b/Labs/Lab2/tmp/pcd.exe
new file mode 100644
index 0000000..edf73a5
Binary files /dev/null and b/Labs/Lab2/tmp/pcd.exe differ
diff --git a/Labs/Lab2/tmp/picc.exe b/Labs/Lab2/tmp/picc.exe
new file mode 100644
index 0000000..5142381
Binary files /dev/null and b/Labs/Lab2/tmp/picc.exe differ