📄 agsm2dlg.cpp
字号:
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 + -