// AnalogDlg.cpp : implementation file // #include "stdafx.h" #include "IDE.h" #include "DlgBitManager.h" #include "DlgBit.h" #include ".\dlgbitmanager.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CDlgBitManager dialog CDlgBitManager::CDlgBitManager(CWnd* pParent /*=NULL*/) : CDialog(CDlgBitManager::IDD, pParent) { //{{AFX_DATA_INIT(CDlgBitManager) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT m_ctrlGridBit.RegisterWindowClass(g_hLangDLL); } void CDlgBitManager::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CDlgBitManager) DDX_Control(pDX, IDC_GRID_BIT, m_ctrlGridBit); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CDlgBitManager, CDialog) //{{AFX_MSG_MAP(CDlgBitManager) //}}AFX_MSG_MAP ON_BN_CLICKED(IDC_BTN_ADD, OnBnClickedAdd) ON_BN_CLICKED(IDC_BTN_EDIT, OnBnClickedEdit) ON_BN_CLICKED(IDC_BTN_DEL, OnBnClickedDel) ON_BN_CLICKED(IDC_BTN_COPY, OnBnClickedCopy) ON_BN_CLICKED(IDC_BTN_CANCEL, OnBnClickedBtnCancel) ON_BN_CLICKED(IDC_BTN_SELECT, OnBnClickedBtnSelect) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CDlgBitManager message handlers void CDlgBitManager::OnOK() { // TODO: Add extra validation here CDialog::OnOK(); } void CDlgBitManager::OnCancel() { // TODO: Add extra cleanup here CDialog::OnCancel(); } BOOL CDlgBitManager::OnInitDialog() { CDialog::OnInitDialog(); m_btnEdit.SubclassDlgItem(IDC_BTN_EDIT, this); m_btnEdit.SetBitmaps(IDB_EDIT, RGB(255, 0, 255)); m_btnEdit.SetFlat(FALSE); m_btnEdit.SetAlign(CButtonST::ST_ALIGN_HORIZ); m_btnCopy.SubclassDlgItem(IDC_BTN_COPY, this); m_btnCopy.SetBitmaps(IDB_COPY , RGB(192, 192, 192)); m_btnCopy.SetFlat(FALSE); m_btnCopy.SetAlign(CButtonST::ST_ALIGN_HORIZ); m_btnDel.SubclassDlgItem(IDC_BTN_DEL, this); m_btnDel.SetBitmaps(IDB_DEL, RGB(255,0 , 255)); m_btnDel.SetFlat(FALSE); m_btnDel.SetAlign(CButtonST::ST_ALIGN_HORIZ); m_btnAdd.SubclassDlgItem(IDC_BTN_ADD, this); m_btnAdd.SetBitmaps(IDB_ADD, RGB(192, 192, 192)); m_btnAdd.SetFlat(FALSE); m_btnAdd.SetAlign(CButtonST::ST_ALIGN_HORIZ); m_btnOK.SubclassDlgItem(IDC_BTN_SELECT, this); m_btnOK.SetBitmaps(IDB_OK, RGB(192, 192, 192)); m_btnOK.SetFlat(FALSE); m_btnOK.SetAlign(CButtonST::ST_ALIGN_HORIZ); m_btnCancel.SubclassDlgItem(IDC_BTN_CANCEL, this); m_btnCancel.SetBitmaps(IDB_EXIT, RGB(192, 192, 192)); m_btnCancel.SetFlat(FALSE); m_btnCancel.SetAlign(CButtonST::ST_ALIGN_HORIZ); SetFields(); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CDlgBitManager::SetFields() { int i; m_ctrlGridBit.m_field.SetSize(4); i=0; m_ctrlGridBit.m_field[i].Field=_T("id"); m_ctrlGridBit.m_field[i].Caption=_T("ID"); m_ctrlGridBit.m_field[i].With = 50; m_ctrlGridBit.m_field[i].Find=true; i=1; m_ctrlGridBit.m_field[i].Field=_T("uid"); m_ctrlGridBit.m_field[i].Caption=g_strVarUid1; m_ctrlGridBit.m_field[i].With=200; m_ctrlGridBit.m_field[i].Find=true; i=2; m_ctrlGridBit.m_field[i].Field=_T("startbit"); m_ctrlGridBit.m_field[i].Caption=g_strStartBit; m_ctrlGridBit.m_field[i].With=200; m_ctrlGridBit.m_field[i].Find=true; i=3; m_ctrlGridBit.m_field[i].Field=_T("endbit"); m_ctrlGridBit.m_field[i].Caption=g_strEndBit; m_ctrlGridBit.m_field[i].With=200; m_ctrlGridBit.m_field[i].Find=true; Requery(); // m_ctrlAnalogGrid.Execute(m_pConnection,"ProductId"/*Primary key field */ // ,"*"//fields in SELECT statment // ,"Products" //from // ,"" // where // ,0); // order by N of the Grid column } void CDlgBitManager::Requery() { CString strWhere; strWhere.Format(" uid = \'%s\'", m_strUID); m_ctrlGridBit.Execute(_T("id")/*Primary key field */ ,_T("*")//fields in SELECT statment ,_T("t_dev_variant_item") //from ,strWhere // where ,0); // order by N of the Grid column // } BEGIN_EVENTSINK_MAP(CDlgBitManager, CDialog) //{{AFX_EVENTSINK_MAP(CDlgBitManager) //}}AFX_EVENTSINK_MAP END_EVENTSINK_MAP() void CDlgBitManager::OnBnClickedAdd() { // TODO: 在此添加控件通知处理程序代码 CDlgBit dlg; dlg.m_pSet = m_ctrlGridBit.m_pSet; dlg.m_strUID = m_strUID; dlg.m_operation = CDlgBit::NEW; if (dlg.DoModal() == IDOK) { //m_ctrlAnalogGrid.Invalidate(); m_ctrlGridBit.AddNew(); Requery(); } } void CDlgBitManager::OnBnClickedEdit() { // TODO: 在此添加控件通知处理程序代码 int nRow=m_ctrlGridBit.IsSelectRow(); if(nRow==-1) return; CDlgBit dlg; dlg.m_strUID = m_strUID; dlg.m_pSet = m_ctrlGridBit.m_pSet; //dlg.m_devTypeID = m_ctrlAnalogGrid.m_pSet->GetCollect(L"CategoryID") ; //dlg.m_supId=m_ctrlAnalogGrid.m_pSet->GetCollect(L"SupplierID") ; //dlg.m_cmbDevType.Attach(&m_CatArray, dlg.m_devTypeID); //dlg.m_cmbSup.Attach(&m_SupArray,dlg.m_supId); dlg.m_operation=CDlgBit::EDIT; if (dlg.DoModal() == IDOK) { m_ctrlGridBit.Invalidate(); Requery(); } } void CDlgBitManager::OnBnClickedDel() { // TODO: 在此添加控件通知处理程序代码 if (MessageBox (g_strMsgConfirmDel, g_strMsgPrompt, MB_YESNO|MB_DEFBUTTON2 | MB_ICONQUESTION) == IDYES) { m_ctrlGridBit.Delete(); Requery(); } } void CDlgBitManager::OnBnClickedCopy() { // TODO: 在此添加控件通知处理程序代码 if(m_ctrlGridBit.IsSelectRow()==-1) return; CDlgBit dlg; dlg.m_strUID = m_strUID; dlg.m_pSet = m_ctrlGridBit.m_pSet; dlg.m_operation=CDlgBit::COPY; if (dlg.DoModal() == IDOK) { m_ctrlGridBit.AddNew(); Requery(); } } BOOL CDlgBitManager::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult) { LPNMHDR pNmhdr = (LPNMHDR)lParam; // TODO: 在此添加专用代码和/或调用基类 //if (wParam == (WPARAM)m_ctrlGridBit.GetDlgCtrlID()) //{ // *pResult = 1; // GV_DISPINFO *pDispInfo = (GV_DISPINFO*)lParam; // m_ctrlGridBit.SetValue(pDispInfo); // switch( pNmhdr->code ) // { // case NM_DBLCLK: // RowSelect(); // return true; // } //} if (wParam == (WPARAM)m_ctrlGridBit.GetDlgCtrlID()) { *pResult = 1; GV_DISPINFO *pDispInfo = (GV_DISPINFO*)lParam; m_ctrlGridBit.SetValue(pDispInfo); } return CDialog::OnNotify(wParam, lParam, pResult); } void CDlgBitManager::OnBnClickedBtnCancel() { // TODO: 在此添加控件通知处理程序代码 OnCancel(); } void CDlgBitManager::RowSelect() { int nRow=m_ctrlGridBit.IsSelectRow(); if(nRow==-1) { MessageBox(g_strSelLine, g_strTip, MB_ICONINFORMATION); return; } m_nID = atoi(m_ctrlGridBit.GetCell( nRow, 0 )->GetText()); m_nStartBit = atoi(m_ctrlGridBit.GetCell( nRow, 2 )->GetText()); m_nEndBit = atoi(m_ctrlGridBit.GetCell( nRow, 3 )->GetText()); OnOK(); } void CDlgBitManager::OnBnClickedBtnSelect() { // TODO: 在此添加控件通知处理程序代码 RowSelect(); } LRESULT CDlgBitManager::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) { // TODO: 在此添加专用代码和/或调用基类 switch( message ) { case WM_DCLICK: { int nRow=m_ctrlGridBit.IsSelectRow(); if(nRow==-1) return 0; CDlgBit dlg; dlg.m_strUID = m_strUID; dlg.m_pSet = m_ctrlGridBit.m_pSet; //dlg.m_devTypeID = m_ctrlAnalogGrid.m_pSet->GetCollect(L"CategoryID") ; //dlg.m_supId=m_ctrlAnalogGrid.m_pSet->GetCollect(L"SupplierID") ; //dlg.m_cmbDevType.Attach(&m_CatArray, dlg.m_devTypeID); //dlg.m_cmbSup.Attach(&m_SupArray,dlg.m_supId); dlg.m_operation=CDlgBit::EDIT; if (dlg.DoModal() == IDOK) { m_ctrlGridBit.Invalidate(); Requery(); } } break; } return CDialog::WindowProc(message, wParam, lParam); }