www.gusucode.com > 一些VC++网络编程实例源代码-源码程序 > 一些VC++网络编程实例源代码-源码程序\code\第三章\MyBrowserEx\MyBrowserExView.cpp
//Download by http://www.NewXing.com // MyBrowserExView.cpp : implementation of the CMyBrowserExView class // #include "stdafx.h" #include "MyBrowserEx.h" #include "MyBrowserExDoc.h" #include "MyBrowserExView.h" #include "MainFrm.h" #include "ProxyDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CMyBrowserExView IMPLEMENT_DYNCREATE(CMyBrowserExView, CEditView) BEGIN_MESSAGE_MAP(CMyBrowserExView, CEditView) //{{AFX_MSG_MAP(CMyBrowserExView) ON_COMMAND(ID_DEFAULT, OnDefault) ON_UPDATE_COMMAND_UI(ID_DEFAULT, OnUpdateDefault) ON_COMMAND(ID_PROXY, OnProxy) ON_UPDATE_COMMAND_UI(ID_PROXY, OnUpdateProxy) ON_COMMAND(ID_HOST, OnHost) ON_UPDATE_COMMAND_UI(ID_HOST, OnUpdateHost) ON_MESSAGE(WM_READFILECOMPLETED,OnReadFileCompleted) //}}AFX_MSG_MAP // Standard printing commands ON_COMMAND(ID_FILE_PRINT, CEditView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_DIRECT, CEditView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_PREVIEW, CEditView::OnFilePrintPreview) ON_CBN_SELENDOK(ID_COMBO,OnNewAddress) ON_COMMAND(IDOK,OnNewAddressEnter) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CMyBrowserExView construction/destruction CMyBrowserExView::CMyBrowserExView() { // TODO: add construction code here m_dwAccessType = 0; } CMyBrowserExView::~CMyBrowserExView() { } BOOL CMyBrowserExView::PreCreateWindow(CREATESTRUCT& cs) { // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs BOOL bPreCreated = CEditView::PreCreateWindow(cs); cs.style &= ~(ES_AUTOHSCROLL|WS_HSCROLL); // Enable word-wrapping return bPreCreated; } ///////////////////////////////////////////////////////////////////////////// // CMyBrowserExView drawing void CMyBrowserExView::OnDraw(CDC* pDC) { CMyBrowserExDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here } ///////////////////////////////////////////////////////////////////////////// // CMyBrowserExView printing BOOL CMyBrowserExView::OnPreparePrinting(CPrintInfo* pInfo) { // default CEditView preparation return CEditView::OnPreparePrinting(pInfo); } void CMyBrowserExView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo) { // Default CEditView begin printing. CEditView::OnBeginPrinting(pDC, pInfo); } void CMyBrowserExView::OnEndPrinting(CDC* pDC, CPrintInfo* pInfo) { // Default CEditView end printing CEditView::OnEndPrinting(pDC, pInfo); } ///////////////////////////////////////////////////////////////////////////// // CMyBrowserExView diagnostics #ifdef _DEBUG void CMyBrowserExView::AssertValid() const { CEditView::AssertValid(); } void CMyBrowserExView::Dump(CDumpContext& dc) const { CEditView::Dump(dc); } CMyBrowserExDoc* CMyBrowserExView::GetDocument() // non-debug version is inline { ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMyBrowserExDoc))); return (CMyBrowserExDoc*)m_pDocument; } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // CMyBrowserExView message handlers void CMyBrowserExView::OnNewAddress() { CMainFrame* pFrame = (CMainFrame*)AfxGetMainWnd(); pFrame->m_wndAddress.GetLBText(pFrame->m_wndAddress.GetCurSel(), m_strAddress); Connect(); } void CMyBrowserExView::OnNewAddressEnter() { CMainFrame* pFrame = (CMainFrame*)AfxGetMainWnd(); pFrame->m_wndAddress.GetEditCtrl()->GetWindowText(m_strAddress); COMBOBOXEXITEM item; item.mask = CBEIF_TEXT; item.iItem = -1; item.pszText = (LPTSTR)(LPCTSTR)m_strAddress; pFrame->m_wndAddress.InsertItem(&item); Connect(); } BOOL CMyBrowserExView::Connect() { if ( m_strAddress.IsEmpty() || "http://"!=m_strAddress.Left(7)) { AfxMessageBox("请输入网页地址!",MB_OK | MB_ICONINFORMATION); return FALSE; } m_InternetThread.Init(GetSafeHwnd()); m_InternetThread.GetPage(m_strAddress); return TRUE; } void CMyBrowserExView::OnDefault() { // TODO: Add your command handler code here if (m_dwAccessType != 0) m_dwAccessType = 0; m_InternetThread.SetAccessTypeIndex(0); } void CMyBrowserExView::OnUpdateDefault(CCmdUI* pCmdUI) { // TODO: Add your command update UI handler code here pCmdUI->SetCheck(m_dwAccessType == 0 ); } void CMyBrowserExView::OnProxy() { // TODO: Add your command handler code here if (m_dwAccessType != 1) m_dwAccessType = 1; m_InternetThread.SetAccessTypeIndex(1); CProxyDlg dlg; dlg.m_strProxy = m_InternetThread.GetProxyServer(); if(dlg.DoModal() == IDOK) { m_InternetThread.SetProxyServer(dlg.m_strProxy); } } void CMyBrowserExView::OnUpdateProxy(CCmdUI* pCmdUI) { // TODO: Add your command update UI handler code here pCmdUI->SetCheck(m_dwAccessType == 1); } void CMyBrowserExView::OnHost() { // TODO: Add your command handler code here if (m_dwAccessType != 2) m_dwAccessType = 2; m_InternetThread.SetAccessTypeIndex(2); } void CMyBrowserExView::OnUpdateHost(CCmdUI* pCmdUI) { // TODO: Add your command update UI handler code here pCmdUI->SetCheck(m_dwAccessType == 2); } //DEL void CMyBrowserExView::EnableUI(BOOL bEnable) //DEL { //DEL CMenu* pMenu = GetMenu()->GetSubMenu(3); //DEL pMenu->EnableMenuItem(IDR_MAINFRAME,bEnable); //DEL } afx_msg LRESULT CMyBrowserExView::OnReadFileCompleted(WPARAM wParm,LPARAM lParam) { TRACE0("CMyBrowserExView::OnReadFileCompleted\r/n"); UINT uiResult = (UINT)lParam; if (uiResult == THREAD_GOOD) { SetWindowText(""); SetWindowText(m_InternetThread.GetBuffer()); } //EnableUI (TRUE); return TRUE; }