Tastatureingaben

Naja das halt mit der ENTER Taste, das sich da nicht immer mein Programm schließt.
Vielleicht hilfts wenn ich dir sage das ich eMbedded Visual C++ 4.0 benutze und mein Betriebssystem WindowsCE.NET 4.2 ist. Danke
 
Doch das klappt, nur dann kann ich keine Schaltfläche mehr in dem Dialog anklicken bzw betätigen (mit der ENTER Taste) und das kann und darf nicht sein. Wie soll man den sonst zu dem nächsten Dialog kommen.
 
Alternativ würde auch funktionieren, bei "OnOK()" nichts zu tun. Falls dein Beenden-Button die ID "IDOK" hat, musst du diese ändern und dafür eine neue Methode verwenden. Analog funktioniert auch "OnCancel()" für die ESC-Taste.

Gruß
MCoder
 
Das ist der Code für mein Beenden Button;

Code:
void CPEG_MTDlg::OnBtnBeen() 
{// Beginn Prozedur
  if (MessageBox(_T("Wollen Sie das Gerät wirklich Ausschalten?!")
	  ,_T("Frage"),MB_YESNO|MB_DEFBUTTON2)==IDYES)
  {// Gerät Ausschalten, wenn Button "NEIN" gedrückt wird
	  ::keybd_event(VK_OFF, 0, 0, 0); 
	  ::keybd_event(VK_OFF, 0, KEYEVENTF_KEYUP, 0);
  }
  else
  {// Gerät nicht Ausschalten, wenn Button "JA" gedrückt wird
	  //
  }
}// Ende Prozedu
r
 
Hallo,

hier mal etwas Code zu meinen letztem Post. Zumindest beim normalen Windows lassen sich damit recht zuverlässig alle Versuche, das Programm zu schließen, unterbinden.
C++:
// in der .h-Datei deklarieren
virtual void OnOK();
virtual void OnCancel();

// in der .cpp-Datei implementieren
void CPEG_MTDlg::OnOK()     { /*leer lassen*/ }
void CPEG_MTDlg::OnCancel() { /*leer lassen*/ }

Zu deinem Beenden-Code weiß ich nichts weiter zu sagen, außer dass du irgendwie die Kommentare verwechselt hast :)
Wird bei "VK_OFF" eigentlich das System heruntergefahren und dann abgeschaltet oder nur der aktuelle Zustand eingefroren und dann ageschaltet? Mit portablem Windows-Systemen habe ich absolut keine Erfahrung.

Gruß
MCoder
 
Naja was solls mit dem Beenden Button. Upps das mit den Kommentaren werde ich dann gleich ändern :).
Mit VK_OFF wird das Gerät ausgeschalten und der Zustand nicht eingefroren. Ich probiere einfach mal ein bisschen noch rum. Bin jetzt grad auf nem anderen Dialog und da klappts mit dem ENTER Button, ich kann ihn weiterhin nutzen. Kucks dir mal an;

Code:
BOOL CDANMELD::PreTranslateMessage(MSG* pMsg) 
{
  CString m_EingabeKenn;
  CString m_EingabeZiel;

  if( pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_ESCAPE )
  {
	  return TRUE;
  }
  

  GetDlgItemText(IDC_EDT_BENU,m_BenutzerEingabe);  
  GetDlgItemText(IDC_EDT_KENN,m_KennwortEingabe);
  if((pMsg->message == WM_KEYDOWN) && (pMsg->wParam == VK_RETURN))
  {	  
	  if ((m_BenutzerEingabe != "") && (m_KennwortEingabe != ""))
	  {
		  //CPEG_MTDlg haupt;
		  //if(haupt.DoModal() == IDOK)
	  }	 
	  MessageBox(_T("Eingaben waren falsch, neue Eingabe"),_T("Warnung"),MB_OK);	  
	  return TRUE;
  }
  return CDialog::PreTranslateMessage(pMsg);
}
 
Zurück