⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 agsm2dlg.cpp

📁 agsm a gsm sim manager for browsing, managing, and manipulating the phonebook,SMS on the SIM card. I
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	TRACE("OnButtonRead\n");
	CScPropertyPage *activePage = (CScPropertyPage *)m_ScPropSheet.GetActivePage();
	activePage->ReadRecord();
	
}

void CAgsm2Dlg::OnReadSelected() 
{
	// TODO: Add your control notification handler code here
	TRACE("OnWriteAll\n");
	CScPropertyPage *activePage = (CScPropertyPage *)m_ScPropSheet.GetActivePage();
	activePage->ReadRecord(-2);
	
}


void CAgsm2Dlg::OnButtonWrite() 
{
	// TODO: Add your control notification handler code here
	TRACE("OnWriteAll\n");
	CScPropertyPage *activePage = (CScPropertyPage *)m_ScPropSheet.GetActivePage();
	activePage->WriteRecord();
	
}

void CAgsm2Dlg::OnWriteSelected() 
{
	TRACE("OnWriteSelected\n");
	CScPropertyPage *activePage = (CScPropertyPage *)m_ScPropSheet.GetActivePage();
	activePage->WriteRecord(-2);

}

void CAgsm2Dlg::OnButtonImport() 
{
	// TODO: Add your control notification handler code here
	CScPropertyPage *activePage = (CScPropertyPage *)m_ScPropSheet.GetActivePage();
	CScListCtrl *listCtrl = activePage->GetListCtrl();
	if(listCtrl)
	{
		CScListImportCSV dlg;
		dlg.ImportScList(listCtrl);
		dlg.DoModal();
	}
	
}

void CAgsm2Dlg::OnButtonExport() 
{
	// TODO: Add your control notification handler code here
	CScPropertyPage *activePage = (CScPropertyPage *)m_ScPropSheet.GetActivePage();
	CScListCtrl *listCtrl = activePage->GetListCtrl();
	if(listCtrl)
	{
		CScListExportCSV dlg;
		dlg.ExportScList(listCtrl);
		dlg.DoModal();
	}
}

void CAgsm2Dlg::OnSelchangeComboReaders() 
{
	// TODO: Add your control notification handler code here
	LONG lRet = m_SCReader.SetCurReader(m_ComboReaders.GetCurSel());
	//wait for card power on
	//Sleep(1000);
	CButton *readButton = (CButton *)this->GetDlgItem(IDOK);
	if(lRet == 0)
	{
		readButton->EnableWindow(TRUE);
		m_writeButton.EnableWindow(TRUE);
		//AfxMessageBox(_T("请输入pin码:"));
		CPinDialog dlg;
		if(dlg.RequirePIN())
			dlg.DoModal();
	}else{
		readButton->EnableWindow(FALSE);
		m_writeButton.EnableWindow(FALSE);
	}


	
}

void CAgsm2Dlg::OnMenuitemCopy() 
{
	// TODO: Add your command handler code here
	TRACE("OnMenuitemCopy\n");
	CScPropertyPage *activePage = (CScPropertyPage *)m_ScPropSheet.GetActivePage();
	CScListCtrl *listCtrl = activePage->GetListCtrl();
	if(listCtrl)
		listCtrl->CopySelectedItems();
}

void CAgsm2Dlg::OnMenuitemPaste() 
{
	// TODO: Add your command handler code here
	TRACE("OnMenuitemPaste\n");
	CPropertyPage *activePage = m_ScPropSheet.GetActivePage();
	if(activePage->IsKindOf(RUNTIME_CLASS(CScAdnPage)))
	{
		TRACE("CScAdnPage\n");
		((CScAdnPage *)activePage)->Paste();
	}else if(activePage->IsKindOf(RUNTIME_CLASS(CScSmsPage)))
	{
		TRACE("CScSmsPage\n");
		((CScSmsPage *)activePage)->Paste();
	}
	
}

void CAgsm2Dlg::OnMenuitemEdit() 
{
	// TODO: Add your command handler code here
	TRACE("OnMenuitemEdit\n");
	CPropertyPage *activePage = m_ScPropSheet.GetActivePage();
	if(activePage->IsKindOf(RUNTIME_CLASS(CScAdnPage)))
	{
		TRACE("CScAdnPage\n");
		((CScAdnPage *)activePage)->EditRecord();
	}else if(activePage->IsKindOf(RUNTIME_CLASS(CScSmsPage)))
	{
		TRACE("CScSmsPage\n");
		((CScSmsPage *)activePage)->EditRecord();
	}
	
}


void CAgsm2Dlg::OnMenuitemDelete() 
{
	// TODO: Add your command handler code here
	TRACE("OnMenuitemDelete\n");
	CScPropertyPage *activePage = (CScPropertyPage *)m_ScPropSheet.GetActivePage();
	CScListCtrl *listCtrl = activePage->GetListCtrl();
	if(listCtrl)
		listCtrl->Delete();
}

void CAgsm2Dlg::OnMenuitemCut() 
{
	// TODO: Add your command handler code here
	OnMenuitemCopy();
	OnMenuitemDelete();
}

void CAgsm2Dlg::OnButtonUp() 
{
	// TODO: Add your control notification handler code here
	CScPropertyPage *activePage = (CScPropertyPage *)m_ScPropSheet.GetActivePage();
	CScListCtrl *listCtrl = activePage->GetListCtrl();
	if(listCtrl)
		listCtrl->MoveUp();
}

void CAgsm2Dlg::OnButtonDown() 
{
	// TODO: Add your control notification handler code here
	CScPropertyPage *activePage = (CScPropertyPage *)m_ScPropSheet.GetActivePage();
	CScListCtrl *listCtrl = activePage->GetListCtrl();
	if(listCtrl)
		listCtrl->MoveDown();
	
}

void CAgsm2Dlg::OnButtonFind() 
{
	// TODO: Add your control notification handler code here
	if(m_pFindDialog == NULL)
	{
		m_pFindDialog = new CFindDialog(this);
		m_pFindDialog->Create(IDD_DIALOG_FIND,this);
		m_pFindDialog->ShowWindow(SW_SHOW);
		CRect rect,rect1;
		GetWindowRect(&rect); 
		m_pFindDialog->GetWindowRect(&rect1);
		m_pFindDialog->SetWindowPos(NULL,rect.left + ((rect.Width() - rect1.Width()) / 2),
										rect.top + ((rect.Height() - rect1.Height()) / 2),
										0,0,
										SWP_NOZORDER | SWP_NOSIZE | SWP_NOACTIVATE);
	}else
		m_pFindDialog->SetActiveWindow();
}


UINT CAgsm2Dlg::TrackingReaderAndCardThreadProc(LPVOID pParam)
{
	CAgsm2Dlg *pAgsm2Dlg = (CAgsm2Dlg *)pParam;
	CPcScCtrl &m_SCReader = pAgsm2Dlg->m_SCReader;
	int i=0;
	DWORD dwCurrentState = SCARD_STATE_UNAWARE;

	pAgsm2Dlg->UpdateComboReaders();
	while(!pAgsm2Dlg->m_bDone)
	{
		dwCurrentState = m_SCReader.TrackingCard(dwCurrentState);
		TRACE("dwCurrentState=%x\n",dwCurrentState);
		if(dwCurrentState & SCARD_STATE_PRESENT)
		{
			TRACE("SCARD_STATE_PRESENT\n");
			if(!pAgsm2Dlg->m_bDone)
			{
				CString str((LPCSTR)IDS_STRING_PRESENT);
				pAgsm2Dlg->UpdateCardStatus(str);
				if((dwCurrentState & 0xffff) == 0x22//PRESENT
					|| (dwCurrentState & 0xffff) == 0x422//UNPOWERD
				  )
					//m_SCReader.ConnectCurCard();
					pAgsm2Dlg->OnSelchangeComboReaders();
			}
		}else if(dwCurrentState & SCARD_STATE_EMPTY)
		{
			TRACE("SCARD_STATE_EMPTY\n");
			if(!pAgsm2Dlg->m_bDone)
			{
				CString str((LPCSTR)IDS_STRING_ABSENT);
				pAgsm2Dlg->UpdateCardStatus(str);
				//m_SCReader.DisconnectCurCard();
				pAgsm2Dlg->OnSelchangeComboReaders();
			}
		}else if(dwCurrentState & SCARD_STATE_UNKNOWN)
		{
			TRACE("Reader gone\n");
			if(!pAgsm2Dlg->m_bDone)
			{
				CString str((LPCSTR)IDS_STRING_UNKNOWN);
				pAgsm2Dlg->UpdateCardStatus(str);
				pAgsm2Dlg->UpdateComboReaders();
				Sleep(1000);
			}
		}
	}
//	SetEvent(pAgsm2Dlg->m_hEventDead);
//	AfxEndThread(0);
	return 0;
}

void CAgsm2Dlg::UpdateCardStatus(LPCTSTR lpsz)
{
	CStatic *pStatic = 	(CStatic *)GetDlgItem(IDC_STATIC_SMART);
	//CString s = m_SCReader.GetCardState();
	if(pStatic)
		pStatic->SetWindowText(lpsz);
}

void CAgsm2Dlg::OnClose() 
{
	// TODO: Add your message handler code here and/or call default
	if (m_pTrackingThread != NULL)
	{
			m_bDone = TRUE;
			m_pTrackingThread = NULL;
	}
	//WaitForSingleObject(m_hEventDead, INFINITE);
	CDialog::OnClose();
}

void CAgsm2Dlg::OnDropdownComboReaders() 
{
	// TODO: Add your control notification handler code here
	TRACE("OnDropdownComboReaders");
	//UpdateComboReaders();
	//UpdateCardStatus();
}

void CAgsm2Dlg::OnUpdateMenuitemWrite() 
{
	// TODO: Add your command update UI handler code here
	TRACE("OnUpdateMenuitemWrite\n");
	CScPropertyPage *activePage = (CScPropertyPage *)m_ScPropSheet.GetActivePage();
	CScListCtrl *listCtrl = activePage->GetListCtrl();
	if(listCtrl)
	{
		if(listCtrl->GetSelectedCount())
			m_writeButton.EnableMenuItem(ID_MENU_WRITE_SELECTED,MF_ENABLED);
		else
			m_writeButton.EnableMenuItem(ID_MENU_WRITE_SELECTED,MF_GRAYED);
	}
}

void CAgsm2Dlg::OnUpdateMenuitemRead() 
{
	// TODO: Add your command update UI handler code here
	TRACE("OnUpdateMenuitemRead\n");
	CScPropertyPage *activePage = (CScPropertyPage *)m_ScPropSheet.GetActivePage();
	CScListCtrl *listCtrl = activePage->GetListCtrl();
	if(listCtrl)
	{
		if(listCtrl->GetSelectedCount())
			m_readButton.EnableMenuItem(ID_MENU_READ_SELECTED,MF_ENABLED);
		else
			m_readButton.EnableMenuItem(ID_MENU_READ_SELECTED,MF_GRAYED);
	}
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -