Windows Controls: I-DateTime

Soyez le premier à donner votre avis sur cette source.

Vue 1 062 fois - Téléchargée 122 fois

Description

[Version avec image de capture qui remplace celle du 05.01.2018]

Bonjour,

Le control Date-Time est relativement simple à utiliser.

Code de création: WM_CREATE
HWND date,time,edit;
const int CVB=WS_CHILD|WS_VISIBLE|WS_BORDER;
//
// ...
//
  case WM_CREATE: {
    date=CreateWindow(DATETIMEPICK_CLASS,0,CVB|DTS_LONGDATEFORMAT
      ,10,40,200,24,h,0,0,0);
    time=CreateWindow(DATETIMEPICK_CLASS,0,CVB|DTS_TIMEFORMAT
      ,10,70,200,24,h,0,0,0);
    edit=CreateWindow("EDIT",0,CVB|ES_MULTILINE|ES_AUTOVSCROLL|WS_VSCROLL
      ,10,100,360,250,h,0,0,0);
  } return 0;

Code de notification
Comme il y a deux fenêtres DateTime, on doit déterminer du quel vient la notification.
On affiche alors une ligne de texte correspondant à la modification:
  case WM_NOTIFY: {
    HWND hst=((NMDATETIMECHANGE*)lP)->nmhdr.hwndFrom;
    SendMessage(hst,DTM_GETSYSTEMTIME,0,(LPARAM)&st);
    if (hst==date) {char s[128]; bool b=false;
      if (act.wYear!=st.wYear) {act.wYear=st.wYear; b=true;};
      if (act.wMonth!=st.wMonth) {act.wMonth=st.wMonth; b=true;};
      if (act.wDay!=st.wDay) {act.wDay=st.wDay; b=true;}; 
      if (b) {sprintf_s(s,fmtD,act.wYear,act.wMonth,act.wDay); AppendText(s);}
    } else if (hst==time) {char s[128]; bool b=false;
      if (act.wHour!=st.wHour) {act.wHour=st.wHour; b=true;};
      if (act.wMinute!=st.wMinute) {act.wMinute=st.wMinute; b=true;};
      if (act.wSecond!=st.wSecond) {act.wSecond=st.wSecond; b=true;}; 
      if (b) {sprintf_s(s,fmtT,act.wHour,act.wMinute,act.wSecond); AppendText(s);}
    }
  } return 0;


Bonne lecture …

Liens:

Windows: Date and Time Picker
Windows: About Date and Time Picker Controls
Windows: How to Create a Date and Time Picker Control
Windows: How to Process Date and Time Picker Notifications

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Commenter la réponse de William VOIROL

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.