Zum Inhalt springen

Klotzkopp

Mitglieder
  • Gesamte Inhalte

    9.912
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    3

Beiträge von Klotzkopp

  1. @Crush:

    Das Problem dabei ist allerdings, dass die Exception auch dann geworfen wird, wenn der Benutzer Null eingibt.

    @Elmo:

    Wenn der Benutzer einen oder mehrere Buchstaben eingibt, bekommt Dein int den Wert 0.

    Wenn Null keine gültige Eingabe ist, dann prüf einfach den Wert nach der Eingabe und brich gegebenenfalls ab.

    Wenn Null ein erlaubter Wert sein soll, dann liegt der Fehler an einer anderen Stelle in Deinem Programm. Was machst Du mit der eingegebenen Zahl?

  2. Dieses Sleep(1000) irritiert mich. Erzeugst Du das Event erst 1 Sekunde vor dem Setzen?

    Du must sicherstellen, dass CreateEvent vor OpenEvent ausgeführt wird. Am besten erzeugts Du das Event gleich zu Beginn von Prozess 1. Prüf besser auch auf jeden Fall den Rückgabewert von OpenEvent (Bei Fehler: NULL)

  3. Das Hauptfenster kannst Du zum Beispiel maximiert darstellen, indem Du in der CXYZApp::InitInstance() ein

    m_nCmdShow |= SW_SHOWMAXIMIZED;

    vor dem

    pMainFrame->ShowWindow(m_nCmdShow);

    pMainFrame->UpdateWindow();

    ...

    einfügst.

    Um das Kindfenster maximiert darzustellen, musst Du die ActivateFrame-Methode Deiner von CMDIChildWnd abgeleiteten Klasse überschreiben:

    void CChildFrame::ActivateFrame(int nCmdShow)

    {

    nCmdShow = SW_MAXIMIZE;

    CMDIChildWnd::ActivateFrame(nCmdShow);

    }

  4. Die "0" bekommst Du nicht wirklich weg, wenn Dein Eingabefeld mit einer numerischen Variablen verknüpft ist.

    Die Windows-übliche Vorgehensweise ist aber auch eigentlich die, dass man bei Fehleingaben die falsche Eingabe stehen lässt (damit der dumme User auch sieht, was er falsch gemacht hat ;) ), aber die gesamte Eingabe selektiert. Dann wird bei einer neuen Eingabe die alte ersetzt.

      
    CEdit* pEditCtrl = (CEdit*) GetDlgItem( IDC_EDIT );
    pEditCtrl->SetFocus();
    pEditCtrl->SetSel( 0, -1, TRUE ); // selektiert alles
    [/code]

    Dabei musst Du für IDC_EDIT die Control-ID Deines Eingabefelds setzen. Wenn Du schon eine Kontrollvariable für den Eingabefeld hast, dann kannst Du dir den Kram mit GetDlgItem natürlich sparen.

    Zweite Möglichkeit:

    Wenn die erlaubten Werte sich durch Minimum und Maximum beschreiben lassen und sich im Laufe des Programms nicht verändern, dann kannst Du sie auch gleich im Klassenassistenten fest eintragen.

    Das erspart Dir OnKillFocusxyz, und hat den Vorteil, dass Du keinen gültigen Wert eingeben musst, wenn Du das Programm nur beenden willst :) .

    <FONT COLOR="#a62a2a" SIZE="1">[ 26. August 2001 11:12: Beitrag 1 mal editiert, zuletzt von Klotzkopp ]</font>

  5. Wenn ein Tray Icon verschwindet, wenn man die Maus darüber bewegt, ist die Ursache in aller Regel, dass der Prozess, der Shell_NotifyIcon(NIM_ADD, &nid) aufgerufen hat, nicht mehr läuft, ohne vor dem Beenden Shell_NotifyIcon(NIM_DELETE, &nid) aufgerufen zu haben.

    Die TASKBARCREATED-Message brauchst Du nur, wenn die Möglichkeit besteht, dass beim Aufruf von Shell_NotifiIcon der Taskbar-Prozess noch gar nicht läuft, z.B. wenn Du einen Service schreibst, der ohne eingelogten User läuft. Dieser Service muß dann mittels TASKBARCREATED wissen, wann der Tray zur Verfügung steht, um dann das Icon reinzusetzen.

    Läuft das Programm, das das Icon erzeugt, noch, wenn Du mit der Maus über das Icon fährst und es verschwindet?

  6. Zwei kleine Änderungen zu Hasi Xs Vorschlag:

    Mit Nullen auffüllen (hängt davon ab, wie viele Stellen die ID maximal haben soll), z.B.:

    sprintf(filename,"c:\\trace-%05d.txt",m_iLid);

    für fünfstellige IDs. Bewirkt, dass die Dateien besser sortiert werden können.

    Außerdem deklarierst Du filename besser als:

    char filename[ 14 + Anzahl ID-Stellen ];

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...