- Code/Resource
- Windows Develop
- Linux-Unix program
- Internet-Socket-Network
- Web Server
- Browser Client
- Ftp Server
- Ftp Client
- Browser Plugins
- Proxy Server
- Email Server
- Email Client
- WEB Mail
- Firewall-Security
- Telnet Server
- Telnet Client
- ICQ-IM-Chat
- Search Engine
- Sniffer Package capture
- Remote Control
- xml-soap-webservice
- P2P
- WEB(ASP,PHP,...)
- TCP/IP Stack
- SNMP
- Grid Computing
- SilverLight
- DNS
- Cluster Service
- Network Security
- Communication-Mobile
- Game Program
- Editor
- Multimedia program
- Graph program
- Compiler program
- Compress-Decompress algrithms
- Crypt_Decrypt algrithms
- Mathimatics-Numerical algorithms
- MultiLanguage
- Disk/Storage
- Java Develop
- assembly language
- Applications
- Other systems
- Database system
- Embeded-SCM Develop
- FlashMX/Flex
- source in ebook
- Delphi VCL
- OS Develop
- MiddleWare
- MPI
- MacOS develop
- LabView
- ELanguage
- Software/Tools
- E-Books
- Artical/Document
RDCDLG.CPP
Package: MSDN_VC98.zip [view]
Upload User: bangxh
Upload Date: 2007-01-31
Package Size: 42235k
Code Size: 5k
Category:
Windows Develop
Development Platform:
Visual C++
- // RDCDlg.cpp : implementation file
- //
- // This is a part of the Microsoft Foundation Classes C++ library.
- // Copyright (C) 1992-1998 Microsoft Corporation
- // All rights reserved.
- //
- // This source code is only intended as a supplement to the
- // Microsoft Foundation Classes Reference and related
- // electronic documentation provided with the library.
- // See these sources for detailed information regarding the
- // Microsoft Foundation Classes product.
- #include "stdafx.h"
- #include "MDIBind.h"
- #include "rdc.h"
- #include "MDIDoc.h"
- #include "mainfrm.h"
- #include "RDCFrm.h"
- #include "RDCDlg.h"
- #include "rdocols.h"
- #include "rdocol.h"
- #include "rdoReslt.h"
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
- /////////////////////////////////////////////////////////////////////////////
- // COpenControlsDlg dialog
- COpenControlsDlg::COpenControlsDlg(const CMDIBindDoc* pDocument,CWnd* pParent /*=NULL*/)
- : CDialog(COpenControlsDlg::IDD, pParent)
- {
- //{{AFX_DATA_INIT(COpenControlsDlg)
- m_ColName = pDocument->m_boundCol;
- //}}AFX_DATA_INIT
- if(pDocument->m_pRDC!=NULL)
- m_pRDCView=(CRDCView*) pDocument->m_pRDC->GetParent();
- //you could change m_pRDCView to ponter to RDC itself
- else
- m_pRDCView=NULL;
- m_CurrentSel=-1;
- }
- void COpenControlsDlg::DoDataExchange(CDataExchange* pDX)
- {
- CDialog::DoDataExchange(pDX);
- //{{AFX_DATA_MAP(COpenControlsDlg)
- DDX_CBString(pDX, IDC_COLUMN, m_ColName);
- //}}AFX_DATA_MAP
- }
- BEGIN_MESSAGE_MAP(COpenControlsDlg, CDialog)
- //{{AFX_MSG_MAP(COpenControlsDlg)
- ON_CBN_DROPDOWN(IDC_COLUMN, OnDropdownColumns)
- //}}AFX_MSG_MAP
- END_MESSAGE_MAP()
- /////////////////////////////////////////////////////////////////////////////
- // COpenControlsDlg message handlers
- BOOL COpenControlsDlg::OnInitDialog()
- {
- CDialog::OnInitDialog();
- CListBox* pListBox = (CListBox*) GetDlgItem(IDC_RDCLIST);
- CMainFrame* pMainFrame = (CMainFrame*) AfxGetApp()->m_pMainWnd;
- ASSERT(pMainFrame->IsKindOf(RUNTIME_CLASS(CMainFrame)));
- // iterate through all MDI windows
- CMDIChildWnd* pMDIChild = pMainFrame->MDIGetActive();
- if(pMDIChild != NULL)
- pMDIChild = (CRDCFrame*) pMDIChild->GetWindow(GW_HWNDLAST);
- while (pMDIChild != NULL)
- {
- CString strTitle;
- int nIndex;
- if(pMDIChild->IsKindOf(RUNTIME_CLASS(CRDCFrame)))
- { // only RDC windows
- CRDCView* pRDCView = (CRDCView*)pMDIChild->GetActiveView();
- ASSERT(pRDCView->IsKindOf(RUNTIME_CLASS(CRDCView)));
- // get the window's title
- pMDIChild->GetWindowText(strTitle);
- strTitle=strTitle+_T(": ")+pRDCView->m_pRDCCtl->GetCaption();
- // add the window to the list
- nIndex = pListBox->AddString(strTitle);
- if(m_pRDCView!=NULL &&
- pRDCView==m_pRDCView) // you'd compare RDC themselves as well
- { // select nIndex item only if
- // m_pRDCCtl==the control currenty assigned
- pListBox->SetCurSel(nIndex);
- }
- // store a pointer to the frame
- pListBox->SetItemData(nIndex, (DWORD)pMDIChild);
- }
- pMDIChild = (CRDCFrame*) pMDIChild->GetWindow(GW_HWNDPREV);
- } // while
- int cElements = pListBox->GetCount();
- pListBox->SetFocus();
- return TRUE; // return TRUE unless you set the focus to a control
- // EXCEPTION: OCX Property Pages should return FALSE
- }
- void COpenControlsDlg::OnOK()
- {
- CListBox* pListBox = (CListBox*) GetDlgItem(IDC_RDCLIST);
- int cElements = pListBox->GetCount();
- int nSelection= pListBox->GetCurSel(); // get the selected item
- if(cElements > 0 && nSelection >= 0)
- { // can only select a window if at least one item is selected
- // get the pointer to the frame
- m_pMDIChild = (CRDCFrame*) pListBox->GetItemData(nSelection);
- ASSERT(m_pMDIChild->IsKindOf(RUNTIME_CLASS(CRDCFrame)));
- // now use ActiveView() rather than MDIActivate()
- // get a pointer to the active view in the frame
- m_pRDCView = (CRDCView*) m_pMDIChild->GetActiveView();
- ASSERT(m_pRDCView->IsKindOf(RUNTIME_CLASS(CRDCView)));
- } //if
- CDialog::OnOK();
- }
- /////////////////////////////////////////////////////////////////////////////
- // Refill the Combo List with columns names from currently selected RDC
- void COpenControlsDlg::OnDropdownColumns()
- {
- CListBox* pListBox = (CListBox*) GetDlgItem(IDC_RDCLIST);
- CComboBox* pComboBox = (CComboBox*) GetDlgItem(IDC_COLUMN);
- int nSelection=pListBox->GetCurSel();
- if(nSelection<0 || nSelection==m_CurrentSel)
- return; // nothing to change in Combo box
- m_CurrentSel=nSelection;
- pComboBox->ResetContent( ); // clear old columns
- m_pMDIChild = (CRDCFrame*) pListBox->GetItemData(nSelection);
- ASSERT(m_pMDIChild->IsKindOf(RUNTIME_CLASS(CRDCFrame)));
- // now use ActiveView() rather than MDIActivate()
- // get a pointer to the active view in the frame
- m_pRDCView = (CRDCView*) m_pMDIChild->GetActiveView();
- ASSERT(m_pRDCView->IsKindOf(RUNTIME_CLASS(CRDCView)));
- CRdc* pRDC=m_pRDCView->m_pRDCCtl;
- ASSERT(pRDC!=NULL);
- CrdoResultset pResult; // resultset from RDC
- CrdoColumns pColumns; // columns from resultset
- pResult=pRDC->GetResultset();
- if(pResult!=NULL && (pColumns=pResult.GetRdoColumns())!=NULL)
- {
- long ncol=pColumns.GetCount();
- CrdoColumn pCol; // element from columns collection
- for(long icol=0; icol<ncol; icol++)
- {
- pCol=pColumns.GetItem(COleVariant(icol)); //get i-column
- pComboBox->AddString(pCol.GetName());//add its name to the list
- }
- pComboBox->SetCurSel(0); // no old element valid if new RDC
- }
- }