[english]

Quelltext /~heha/hs_freeware/Funkuhr.zip[Download]/src/DlgTrayIcon.c

Zeilennummern anzeigen
/********************************
 * Projekt: Funkuhr DCF77	*
 * Eigenschaftsseite äTrayIconô	*
 * Festlegung Erscheinungsbild	*
 * des Tray-Icons		*
 ********************************/

#include "Funkuhr.h"

INT_PTR CALLBACK TrayIconDlgProc(HWND Wnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
 DefHelpProc(Wnd,Msg,lParam,103);
 switch (Msg) {
  case WM_INITDIALOG: {
   UINT id;	// Minuten-Anzahl einsetzen
   for (id=15; id<=16; id++) {
    TCHAR s[128],t[128];
    GetDlgItemText(Wnd,id,t,elemof(t));
    wnsprintf(s,elemof(s),t,Config.ToSilence);
    SetDlgItemText(Wnd,id,s);
   }
   CheckDlgButton(Wnd,11+Config.TrayIconVis,TRUE);
   CheckDlgButton(Wnd,14,Config.TrayIconBlink);
   CheckDlgButton(Wnd,15+Config.TrayIconAus,TRUE);
   SendMessage(Wnd,WM_FUNKRECV,12,0);	// setzen lassen
   SendDlgItemMessage(Wnd,20,TBM_SETRANGE,0,MAKELONG(0,10));
   SendDlgItemMessage(Wnd,20,TBM_SETPOS,1,Config.Piep);
  }return TRUE;

  case WM_NOTIFY: {
   LPPSHNOTIFY psn=(LPPSHNOTIFY)lParam;
   switch (psn->hdr.code) {
    case PSN_SETACTIVE: {
     HWND w=GetDlgItem(Wnd,20);
     BOOL e=Config.Where!=2;
     EnableWindow(w,e);
     EnableWindow(GetPrevSibling(w),e);
     SendMessage(Wnd,WM_FUNKRECV,12,0);	// setzen lassen
    }break;
   }
  }break;

  case WM_COMMAND: switch (LOWORD(wParam)) {
   case 11:
   case 12:
   case 13: {
    Config.TrayIconVis=(BYTE)(wParam-11);
    TrayIconVisChanged();
   }break;
   case 14: Config.TrayIconBlink=IsDlgButtonChecked(Wnd,14); break;
   case 15:
   case 16:
   case 17: {
    wParam-=15;
    if (Empfang.Ein==3) {	// Empfangszeit-Timer nachfⁿhren 110908
     if (Config.TrayIconAus==2 && wParam<2) SetTimer(MainWnd,102,Config.ToSilence*60000,NULL);
     if (Config.TrayIconAus<2 && wParam==2) KillTimer(MainWnd,102);
    }
    Config.TrayIconAus=(BYTE)wParam;
   }break;
   case 18: {	// Keine AUTOCHECKBOX!! ▄bergΣnge: 0->1, 1->0, 2->1. Das Setzen erfolgt bei WM_FUNKRECV.
    PostMessage(MainWnd,WM_SetActivity,IsDlgButtonChecked(Wnd,18)==1?0:3,0);
   }break;
  }break;

  case WM_FUNKRECV: switch (wParam) {
   case 12: {		// Config.Ein geΣndert
    UINT Check=2;	// EIN, aber ohne Darstellung (stiller Empfang)
    switch (Empfang.Ein) {
     case 0: Check=0; break;	// voll AUS
     case 3: Check=1; break;	// voll EIN
    }
    CheckDlgButton(Wnd,18,Check);
   }break;
  }break;

  case WM_HSCROLL: switch (LOWORD(wParam)) {	// Schieberegler ╗Piep½
   case SB_ENDSCROLL: {
    Empfang.DauerPiep=false;
    if (Config.Piep) {
     if (Empfang.Ein==3) {
      if (!Empfang.Signal) StopBeep();
     }else DoneBeep();
    }
   }break;
   default:{
    BYTE NewPiep=(BYTE)SendMessage((HWND)lParam,TBM_GETPOS,0,0);
    if (!Empfang.DauerPiep) {
     Empfang.DauerPiep=true;
     Config.Piep=NewPiep;
     if (Config.Piep) {
      if (Empfang.Ein==3) {
       if (!Empfang.Signal) StartBeep();
      }else goto initbeep;
     }
    }else if (Config.Piep!=NewPiep) {
     if (Config.Piep && !NewPiep) DoneBeep();	// macht implizit StopBeep
     Config.Piep=NewPiep;
     if (Config.Piep) {
initbeep:
      InitBeep((BYTE)(10-Config.Piep));
      StartBeep();
     }
    }
   }
  }break;

 }
 return FALSE;
}
Vorgefundene Kodierung: OEM (CP437)1
Umlaute falsch? - Datei sei ANSI-kodiert (CP1252)
Datei sei OEM-kodiert (CP437)