SHARE
TWEET

Untitled

a guest Nov 22nd, 2019 103 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include<Windows.h>
  2. #include<stdlib.h>
  3. #include "resource.h"
  4. #include <iostream>
  5. #include<sstream>
  6. #include<string.h>
  7. #include<Commctrl.h>
  8. #include<strsafe.h>
  9. #include<ctime>
  10. #include<fstream>
  11. using namespace std;
  12. HWND hWnd, hBtnGuardar, hComboEsp, hDilg3, hFoto4ever, hComboHora;
  13. HINSTANCE hInstance, hDlg1, hDlg2, hDlg3, hDlg4, hDlg5, hDlg6, hDlg7, hDlg8, hDlg9; /*Instancia de cada uno*/
  14. HWND hTxtUsu, hTxtContra, hLbA, hStaticPM;
  15. bool paso = NULL;
  16. int CBpos, validfoto = 0, validatos, validatoss;
  17. //estructura
  18. int d = 0; //doctores
  19. int c = 0; //citas
  20. int i = 0; //eliminar
  21. int PhotoMasc = 0;
  22. int MostrarImagen = 0;
  23. int pos, vez = 0;
  24.  
  25. HWND hLb1;
  26. //variables de funciones call_IDCC_DLG3
  27. char txtName[50], txtCedula[30];
  28. int txtCedulaI;
  29. //para foto
  30. HBITMAP hBmpFoto;
  31. HWND hPcFoto, hPcFotoMas, hCalendar, hStatic;
  32.  
  33. string dia, mes, año, fecha;
  34.  
  35.  
  36. struct doctores { //aqui me equivoque porque namas es uno sjn
  37.     char chFilePhoto[MAX_PATH] = "";
  38.     char Name[40];
  39.     char Cedula[10];
  40. } docs[50];
  41. struct appointment {
  42.     char nombre_cliente[40];
  43.     char nombre_mascota[10];
  44.     char telefono[12];
  45.     char tipo_de_mascota[15];
  46.     char costo_consulta[10];
  47.     int year, month, day;
  48.     char chFilePhotoMasc[MAX_PATH];
  49.     char chFilePhotoMasc1[MAX_PATH];
  50.     char motivoconsulta[MAX_PATH];
  51.     char hora[6];
  52.     int horaverdadera;
  53. };
  54. appointment citas[50] = { 0 };
  55. appointment citastempo = { 0 };
  56.  
  57. int GetSelectedDate(HWND hStatic, HWND hCalendar);
  58. int posicion(HWND hDlg);
  59. void pagototal_i(int mes);
  60. void pagototal_s(int mes);
  61. void guardar_info(); //colocarlo en salir
  62. void leer_info();
  63.  
  64. BOOL CALLBACK LOGIN(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); /*dialogo principal*/
  65. BOOL CALLBACK call_IDD_DIALOG1(HWND hDlg1, UINT msg, WPARAM wParam, LPARAM lParam); //demas dialogos vacio CREO QUE TENGO QUE BORRARLO(?)
  66. BOOL CALLBACK call_IDCC_DLG2(HWND hDlg2, UINT msg, WPARAM wParam, LPARAM lParam); /*dialogo info*/
  67. BOOL CALLBACK call_IDCC_DLG3(HWND hDilg3, UINT msg, WPARAM wParam, LPARAM lParam); /*dialogo Alta Cambio*/
  68. BOOL CALLBACK call_IDCC_DLG4(HWND hDlg4, UINT msg, WPARAM wParam, LPARAM lParam); /*dialogo Alta Cambio*/
  69. BOOL CALLBACK call_IDCAGENDA_CAMBIO(HWND hDlg7, UINT msg, WPARAM wParam, LPARAM lParam); /*venatana cambio de cita*/
  70. BOOL CALLBACK call_AGENDA(HWND hDlg8, UINT msg, WPARAM wParam, LPARAM lParam); /*dialogo agenda*/
  71. BOOL CALLBACK call_IDDPAGAR(HWND hDlg9, UINT msg, WPARAM wParam, LPARAM lParam); /*dialogo pagar*/
  72.  
  73. int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, PSTR cmdLine, int showCmd)
  74. {
  75.     hInstance = hInst;
  76.     hWnd = CreateDialog(hInst, MAKEINTRESOURCE(login), 0, LOGIN);
  77.     ShowWindow(hWnd, showCmd);
  78.     MSG msg;
  79.     ZeroMemory(&msg, sizeof(MSG));
  80.  
  81.     while (GetMessage(&msg, 0, 0, 0))
  82.     {
  83.         if (hWnd == 0 || !IsDialogMessage(hWnd, &msg))
  84.         {
  85.             TranslateMessage(&msg);
  86.             DispatchMessage(&msg);
  87.         }
  88.     }
  89.  
  90.     return (int)msg.wParam;
  91. }
  92. BOOL CALLBACK LOGIN(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) {
  93.     HWND hTxtUsu, hTxtContra;
  94.     switch (msg)
  95.     {
  96.  
  97.     case WM_CLOSE:
  98.         if (!(MessageBoxA(NULL, "¿SEGURO QUE DESEA SALIR?", "ERROR", MB_YESNO) == IDNO))
  99.         {
  100.             DestroyWindow(hWnd);
  101.         }
  102.         break;
  103.  
  104.     case WM_COMMAND: {
  105.  
  106.         switch (LOWORD(wParam))
  107.         {
  108.         case  IDC_BUTTON1:
  109.         {
  110.             int txtlenght = (int)GetWindowTextLength(GetDlgItem(hWnd, 1005));
  111.             int txtlenghtC = (int)GetWindowTextLength(GetDlgItem(hWnd, IDC_EDIT2));
  112.             char txtusuario[10], txtcontra[10];
  113.             hTxtUsu = GetDlgItem(hWnd, 1005);
  114.             hTxtContra = GetDlgItem(hWnd, IDC_EDIT2);
  115.             GetWindowText(hTxtUsu, txtusuario, txtlenght + 1);
  116.             GetWindowText(hTxtContra, txtcontra, txtlenghtC + 1);
  117.  
  118.             if (txtlenght == 0 || txtlenght > 4 || txtlenghtC == 0 || txtlenghtC > 4)
  119.             {
  120.                 MessageBox(hWnd, "Falta llenar datos", "ERROR", MB_ICONERROR);
  121.             }
  122.             else {
  123.  
  124.                 ifstream miTxt;
  125.                 miTxt.open("usuario.txt");
  126.                 if (!miTxt.is_open())
  127.                     break;
  128.                 string user, password;
  129.  
  130.                 getline(miTxt, user);
  131.                 getline(miTxt, password);
  132.  
  133.                 if (strcmp(user.c_str(), txtusuario) == 0 && strcmp(password.c_str(), txtcontra) == 0)
  134.                 {
  135.                     ShowWindow(hWnd, SW_HIDE);
  136.                     DialogBox(hDlg1, MAKEINTRESOURCE(IDCC_DLG2), hWnd, call_IDCC_DLG2);
  137.                 }
  138.                 else
  139.                 {
  140.                     MessageBox(hWnd, "Entrada inválida", "ERROR", MB_ICONERROR);
  141.  
  142.                 }
  143.                
  144.             }
  145.         }
  146.         }
  147.     }
  148.                    break;
  149.     case WM_DESTROY:
  150.         PostQuitMessage(0);
  151.         break;
  152.     }
  153.     return 0;
  154. }
  155. //BOOL CALLBACK call_IDD_DIALOG1(HWND hDlg1, UINT msg, WPARAM wParam, LPARAM lParam) {
  156. //  hFoto4ever = GetDlgItem(hDlg1, IDC_STATICDOC4EVER);
  157. //
  158. //  switch (msg)
  159. //  {
  160. //  case WM_COMMAND:
  161. //  {
  162. //      switch (LOWORD(wParam))
  163. //      {
  164. //      case ID_INFORMACION_DOCTORES:
  165. //          DialogBox(hDlg2, MAKEINTRESOURCE(IDCC_DLG2), hDlg1, call_IDCC_DLG2);
  166. //          break;
  167. //
  168. //      case ID_NUEVACITA_ALTA:
  169. //          DialogBox(hDlg4, MAKEINTRESOURCE(IDD_DIALOG3), hDlg1, call_IDCC_DLG4);
  170. //          break;
  171. //      case ID_AGENDA_VERAGENDA:
  172. //          if (c > 0)
  173. //          {
  174. //              DialogBox(hDlg8, MAKEINTRESOURCE(IDD_AGENDA), hDlg1, call_AGENDA);
  175. //
  176. //          }
  177. //          else {
  178. //              MessageBoxA(NULL, "No hay citas programadas, vuelva mas tarde", "ERROR", MB_ICONERROR);
  179. //          }
  180. //          break;
  181. //      case IDC_SALIR: /*se va a guardar todo antes de salir*/
  182. //      {
  183. //
  184. //          //guardar en archivo binario
  185. //
  186. //          if (!(MessageBoxA(NULL, "¿SEGURO QUE DESEA SALIR?", "ERROR", MB_YESNO) == IDNO))
  187. //          {
  188. //              DestroyWindow(hWnd);
  189. //          }
  190. //          break;
  191. //      }
  192. //
  193. //      }
  194. //     
  195. //      break;
  196. //
  197. //  }
  198. //  case WM_CLOSE: {
  199. //      break;
  200. //  }
  201. //  }
  202. //  return FALSE;
  203. //}
  204. BOOL CALLBACK call_IDCC_DLG2(HWND hDlg2, UINT msg, WPARAM wParam, LPARAM lParam) {
  205.  
  206.     switch (msg)
  207.     {
  208.     case WM_CLOSE:
  209.         EndDialog(hDlg2, 0);
  210.         break;
  211.     case WM_COMMAND:
  212.     {
  213.         hLb1 = GetDlgItem(hDlg2, IDC_LIST1);
  214.  
  215.         switch (LOWORD(wParam))
  216.         {
  217.         case IDC_BUTTON1: {
  218.  
  219.             int pos = (int)SendDlgItemMessage(hDlg2, IDC_LIST1, LB_GETCURSEL, 0, 0);
  220.             {
  221.                 if (pos < 0)
  222.                 {
  223.                     MessageBox(NULL, "Seleccione doctor", NULL, MB_ICONWARNING);
  224.                 }
  225.             }
  226.             SetWindowText(GetDlgItem(hDlg2, IDC_STATICDOC), docs[pos].Name);
  227.             SetWindowText(GetDlgItem(hDlg2, IDC_STATICED), docs[pos].Cedula);
  228.             HWND hPcFoto2 = GetDlgItem(hDlg2, 1029);
  229.             SendMessage(hPcFoto2, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)(HBITMAP)LoadImage(NULL, docs[pos].chFilePhoto, IMAGE_BITMAP, 120, 120, LR_LOADFROMFILE));
  230.  
  231.  
  232.         } break;
  233.  
  234.         case IDC_BUTTON2:
  235.  
  236.             if (d < 0 || d < 1)
  237.             {
  238.                 DialogBox(hDlg3, MAKEINTRESOURCE(IDD_DIALOG2), hDlg2, call_IDCC_DLG3);
  239.  
  240.             }
  241.             else
  242.             {
  243.                 MessageBox(NULL, "Solo se permite un doctor", NULL, MB_ICONWARNING);
  244.             }
  245.  
  246.  
  247.             break;
  248.         case IDC_EDITARDOC:
  249.         {
  250.             CBpos = (int)SendDlgItemMessage(hDlg2, IDC_LIST1, LB_GETCURSEL, 0, 0);
  251.             if (CBpos < 0)
  252.             {
  253.                 MessageBox(NULL, "Seleccione doctor", NULL, MB_ICONWARNING);
  254.             }
  255.             else {
  256.                 paso = true;
  257.                 DialogBox(hDlg3, MAKEINTRESOURCE(IDD_DIALOG2), hDlg2, call_IDCC_DLG3);
  258.             }
  259.  
  260.         }   break;
  261.         case IDC_ELIMINAR:
  262.  
  263.             CBpos = (int)SendDlgItemMessage(hDlg2, IDC_LIST1, LB_GETCURSEL, 0, 0);
  264.             if (CBpos < 0)
  265.             {
  266.                 MessageBox(NULL, "Seleccione doctor", NULL, MB_ICONWARNING);
  267.             }
  268.             SendMessage(hLb1, LB_DELETESTRING, CBpos, 0);
  269.             for (int i = CBpos; i <= d; i++)
  270.             {
  271.                 docs[i] = docs[i + 1];
  272.             }
  273.             SetWindowText(GetDlgItem(hDlg2, IDC_STATICDOC), "");
  274.             SetWindowText(GetDlgItem(hDlg2, IDC_STATICED), "");
  275.             HWND hPcFoto2 = GetDlgItem(hDlg2, 1029);
  276.             SendMessage(hPcFoto2, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)(HBITMAP)LoadImage(NULL, NULL, IMAGE_BITMAP, 120, 120, LR_LOADFROMFILE));
  277.  
  278.             d--;
  279.        
  280.             docs[0].Name; //revisar
  281.             break;
  282.         }
  283.  
  284.         //menu ventanas
  285.         switch (LOWORD(wParam))
  286.         {
  287.         /*case ID_INFORMACION_DOCTORES:
  288.             DialogBox(hDlg2, MAKEINTRESOURCE(IDCC_DLG2), hDlg2, call_IDCC_DLG2);
  289.             break;*/
  290.  
  291.         case ID_NUEVACITA_ALTA:
  292.             ShowWindow(hDlg2, 0);
  293.             DialogBox(hDlg4, MAKEINTRESOURCE(IDD_DIALOG3), hDlg2, call_IDCC_DLG4);
  294.             break;
  295.         case ID_AGENDA_VERAGENDA:
  296.             if (c > 0)
  297.             {
  298.             ShowWindow(hDlg2, SW_HIDE);
  299.             DialogBox(hDlg8, MAKEINTRESOURCE(IDD_AGENDA), hDlg2, call_AGENDA);
  300.  
  301.             }
  302.             else {
  303.                 MessageBoxA(NULL, "No hay citas programadas, vuelva mas tarde", "ERROR", MB_ICONERROR);
  304.             }
  305.             break;
  306.         case IDC_SALIR: /*se va a guardar todo antes de salir*/
  307.             {
  308.  
  309.             //guardar en archivo binario
  310.  
  311.                 if (!(MessageBoxA(NULL, "¿SEGURO QUE DESEA SALIR?", "ERROR", MB_YESNO) == IDNO))
  312.                 {
  313.                     DestroyWindow(hWnd);
  314.                 }
  315.                 break;
  316.             }
  317.  
  318.         }
  319.         break;
  320.     }
  321.  
  322.     }
  323.     return FALSE;
  324. }
  325. BOOL CALLBACK call_IDCC_DLG3(HWND hDilg3, UINT msg, WPARAM wParam, LPARAM lParam) /*dialogo Alta Cambio docs*/ {
  326.     switch (msg)
  327.     {
  328.  
  329.     case WM_INITDIALOG:
  330.     {
  331.         if (!(docs[CBpos].Name == 0 || docs[CBpos].Cedula ==0))
  332.         {
  333.             SetWindowText(GetDlgItem(hDilg3, IDC_NAME), docs[pos].Name);
  334.             SetWindowText(GetDlgItem(hDilg3, IDC_CEDULA), docs[pos].Cedula);
  335.             HWND hPcFoto2 = GetDlgItem(hDilg3, IDC_IMAGEDOC);
  336.             SendMessage(hPcFoto2, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)(HBITMAP)LoadImage(NULL, docs[pos].chFilePhoto, IMAGE_BITMAP, 120, 120, LR_LOADFROMFILE));
  337.  
  338.         }
  339.     }
  340.         break;
  341.     case WM_CLOSE:
  342.         EndDialog(hDilg3, 0);
  343.         break;
  344.  
  345.     case WM_COMMAND:
  346.     {
  347.         HWND hName = GetDlgItem(hDilg3, IDC_NAME);
  348.         HWND hCedula = GetDlgItem(hDilg3, IDC_CEDULA);
  349.         int leng = (int)GetWindowTextLength(hName);
  350.         int lengC = (int)GetWindowTextLength(hCedula);
  351.         GetWindowText(hName, txtName, leng + 1);
  352.         GetWindowText(hCedula, txtCedula, lengC + 1);
  353.  
  354.         paso;
  355.         if (paso == true)
  356.         {
  357.             switch (LOWORD(wParam))
  358.             {
  359.             case IDC_CARGAR:
  360.             {
  361.                 OPENFILENAME of;
  362.                 ZeroMemory(&of, sizeof(of));
  363.  
  364.                 of.hwndOwner = hDilg3;
  365.                 of.lStructSize = sizeof(of);
  366.                 of.lpstrFile = docs[d].chFilePhoto;
  367.                 of.nMaxFile = MAX_PATH;
  368.                 of.lpstrDefExt = "BMP";
  369.                 of.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
  370.                 of.lpstrFilter = "Bitmap Files (*.bmp)\0*.bmp\0\0""";
  371.                 if (GetOpenFileName(&of)) {
  372.                     hPcFoto = GetDlgItem(hDilg3, IDC_IMAGEDOC);
  373.                     hBmpFoto = (HBITMAP)LoadImage(NULL, docs[d].chFilePhoto, IMAGE_BITMAP, 120, 120, LR_LOADFROMFILE);
  374.                     SendMessage(hPcFoto, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hBmpFoto);
  375.                     SendMessage(hFoto4ever, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)(HBITMAP)LoadImage(NULL, docs[d].chFilePhoto, IMAGE_BITMAP, 120, 120, LR_LOADFROMFILE));
  376.  
  377.                 }
  378.  
  379.             }
  380.             break;
  381.             case IDC_REVISAR:
  382.             {
  383.  
  384.                 int a = strlen(docs[d].chFilePhoto);
  385.  
  386.                 if (lengC == 0)
  387.                 {
  388.                     MessageBox(NULL, "NO INGRESÓ CEDULA", NULL, MB_OK);
  389.  
  390.                 }
  391.                 else
  392.                 {
  393.                     for (int i = 0; i < lengC; i++)
  394.                     {
  395.                         if (!(isdigit(txtCedula[i])))
  396.                         {
  397.                             MessageBox(NULL, "Ingresó caracter invalido en cédula", NULL, MB_ICONERROR);
  398.                             validfoto = 2;
  399.                             break;
  400.                         }
  401.                         if (a == 0)
  402.                         {
  403.                             MessageBox(NULL, "NO INGRESÓ FOTO", NULL, MB_OK);
  404.                             validfoto = 3;
  405.                             break;
  406.                         }
  407.                     }
  408.                 }
  409.                 for (int i = 0; i < leng; i++)
  410.                 {
  411.                     if (!(isalpha(txtName[i]) || isspace(txtName[i])))
  412.                     {
  413.                         MessageBox(NULL, "Ingresó caracter invalido en nombre", NULL, MB_ICONERROR);
  414.                         validfoto = 3;
  415.                         break;
  416.                     }
  417.                 }
  418.                 if (validfoto != 0)
  419.                 {
  420.                     EnableWindow(GetDlgItem(hDilg3, IDC_GUARDAR), FALSE);
  421.                     validfoto = 0;
  422.  
  423.                 }
  424.                 else {
  425.                     EnableWindow(GetDlgItem(hDilg3, IDC_GUARDAR), TRUE);
  426.                 }
  427.             }
  428.  
  429.             break;
  430.  
  431.             case IDC_GUARDAR:
  432.             {
  433.                 strcpy_s(docs[d].Name, 40, txtName);
  434.                 strcpy_s(docs[d].Cedula, 10, txtCedula);
  435.                 SendMessage(hLb1, LB_ADDSTRING, 0, (LPARAM)docs[d].Name);
  436.                 EndDialog(hDilg3, 0);
  437.  
  438.  
  439.             }
  440.             break;
  441.  
  442.             }
  443.             //paso = false; /* de esta forma no volvera al mismo de editar*/
  444.         }
  445.         else { /*entrar cuando NO sea editar*/
  446.             switch (LOWORD(wParam))
  447.             {
  448.  
  449.             case IDC_CARGAR: /*explorador, guardar archivo, ponerlo y verificar si esta lleno el nombre del archivo*/
  450.             {
  451.                 OPENFILENAME of;
  452.                 ZeroMemory(&of, sizeof(of));
  453.  
  454.                 of.hwndOwner = hDilg3;
  455.                 of.lStructSize = sizeof(of);
  456.                 of.lpstrFile = docs[d].chFilePhoto;
  457.                 of.nMaxFile = MAX_PATH;
  458.                 of.lpstrDefExt = "BMP";
  459.                 of.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
  460.                 of.lpstrFilter = "Bitmap Files (*.bmp)\0*.bmp\0\0""";
  461.                 if (GetOpenFileName(&of)) {
  462.                     hPcFoto = GetDlgItem(hDilg3, IDC_IMAGEDOC);
  463.                     hBmpFoto = (HBITMAP)LoadImage(NULL, docs[d].chFilePhoto, IMAGE_BITMAP, 120, 120, LR_LOADFROMFILE);
  464.                     SendMessage(hPcFoto, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hBmpFoto);
  465.                     SendMessage(hFoto4ever, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)(HBITMAP)LoadImage(NULL, docs[d].chFilePhoto, IMAGE_BITMAP, 120, 120, LR_LOADFROMFILE));
  466.  
  467.                 }
  468.                 break;
  469.             }
  470.             case IDC_REVISAR: /*deshabilitar los editas al momento de que este todo correcto y se habilita el boton de guardar*/
  471.             {
  472.                 int a = strlen(docs[d].chFilePhoto);
  473.  
  474.                 if (lengC == 0)
  475.                 {
  476.                     MessageBox(NULL, "NO INGRESÓ CEDULA", NULL, MB_OK);
  477.  
  478.                 }
  479.                 else
  480.                 {
  481.                     if (a == 0)
  482.                     {
  483.                         MessageBox(NULL, "NO INGRESÓ FOTO", NULL, MB_OK);
  484.                         validfoto = 3;
  485.                         break;
  486.                     }
  487.                     for (int i = 0; i < lengC; i++)
  488.                     {
  489.                         if (!(isdigit(txtCedula[i])))
  490.                         {
  491.                             MessageBox(NULL, "Ingresó caracter invalido en cédula", NULL, MB_ICONERROR);
  492.                             validfoto = 2;
  493.                             break;
  494.                         }
  495.                         /*else
  496.                         {paso= true; }*/
  497.                     }
  498.                 }
  499.                 if (leng == 0)
  500.                 {
  501.                     MessageBox(NULL, "NO INGRESÓ NOMBRE", NULL, MB_OK);
  502.  
  503.                 }
  504.                 else
  505.                 {
  506.                     for (int i = 0; i < leng; i++)
  507.                     {
  508.                         if (!(isalpha(txtName[i]) || isspace(txtName[i])))
  509.                         {
  510.                             MessageBox(NULL, "Ingresó caracter invalido en nombre", NULL, MB_ICONERROR);
  511.                             validfoto = 3;
  512.                             break;
  513.                         }
  514.                         //else { paso = true; }
  515.                     }
  516.                 }
  517.  
  518.                 if (validfoto != 0)
  519.                 {
  520.                     EnableWindow(GetDlgItem(hDilg3, IDC_GUARDAR), FALSE);
  521.                     validfoto = 0;
  522.  
  523.                 }
  524.                 else {
  525.                     EnableWindow(GetDlgItem(hDilg3, IDC_GUARDAR), TRUE);
  526.  
  527.                 }
  528.                 break;
  529.             }
  530.             case IDC_GUARDAR:
  531.             {
  532.                 strcpy_s(docs[d].Name, 40, txtName);
  533.                 strcpy_s(docs[d].Cedula, 10, txtCedula);
  534.                 SendMessage(hLb1, LB_ADDSTRING, 0, (LPARAM)docs[d].Name);
  535.                 d++;
  536.                 EndDialog(hDilg3, 0);
  537.                 break;
  538.             }
  539.  
  540.     /*      break;*/
  541.  
  542.             }
  543.         }
  544.     }
  545.     break;
  546.     }
  547.     return FALSE;
  548. }
  549. BOOL CALLBACK call_IDCC_DLG4(HWND hDlg4, UINT msg, WPARAM wParam, LPARAM lParam) {
  550.     switch (msg)
  551.     {
  552.  
  553.         LPNMHDR lpNmHdr;
  554.     case WM_INITDIALOG:
  555.     {
  556.         EnableWindow(GetDlgItem(hDlg4, 1053), FALSE);
  557.         EnableWindow(GetDlgItem(hDlg4, 1054), FALSE);
  558.         HWND hFoto4ev = GetDlgItem(hDlg4, IDC_STATICdoc4eve);
  559.         SendMessage(hFoto4ev, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)(HBITMAP)LoadImage(NULL, docs[0].chFilePhoto, IMAGE_BITMAP, 100, 100, LR_LOADFROMFILE));
  560.  
  561.         hComboEsp = GetDlgItem(hDlg4, IDC_COMBO1);
  562.         SendMessage(hComboEsp, CB_ADDSTRING, 0, (LPARAM)"Perro");
  563.         SendMessage(hComboEsp, CB_ADDSTRING, 0, (LPARAM)"Gato");
  564.         SendMessage(hComboEsp, CB_ADDSTRING, 0, (LPARAM)"Tortuga");
  565.         SendMessage(hComboEsp, CB_ADDSTRING, 0, (LPARAM)"Hámster");
  566.         SendMessage(hComboEsp, CB_ADDSTRING, 0, (LPARAM)"Cuyo");
  567.         SendMessage(hComboEsp, CB_ADDSTRING, 0, (LPARAM)"Conejo");
  568.         SendMessage(hComboEsp, CB_ADDSTRING, 0, (LPARAM)"Pájaro");
  569.         SendMessage(hComboEsp, CB_ADDSTRING, 0, (LPARAM)"Pez");
  570.  
  571.         hComboHora = GetDlgItem(hDlg4, IDC_COMBO2);
  572.         SendMessage(hComboHora, CB_ADDSTRING, 0, (LPARAM)"09:00");
  573.         SendMessage(hComboHora, CB_ADDSTRING, 0, (LPARAM)"10:00");
  574.         SendMessage(hComboHora, CB_ADDSTRING, 0, (LPARAM)"11:00");
  575.         SendMessage(hComboHora, CB_ADDSTRING, 0, (LPARAM)"12:00");
  576.         SendMessage(hComboHora, CB_ADDSTRING, 0, (LPARAM)"13:00");
  577.         SendMessage(hComboHora, CB_ADDSTRING, 0, (LPARAM)"14:00");
  578.         SendMessage(hComboHora, CB_ADDSTRING, 0, (LPARAM)"15:00");
  579.         SendMessage(hComboHora, CB_ADDSTRING, 0, (LPARAM)"16:00");
  580.         SendMessage(hComboHora, CB_ADDSTRING, 0, (LPARAM)"17:00");
  581.         SendMessage(hComboHora, CB_ADDSTRING, 0, (LPARAM)"18:00");
  582.         SendMessage(hComboHora, CB_ADDSTRING, 0, (LPARAM)"19:00");
  583.         SendMessage(hComboHora, CB_ADDSTRING, 0, (LPARAM)"20:00");
  584.         SendMessage(hComboHora, CB_ADDSTRING, 0, (LPARAM)"21:00");
  585.  
  586.     }
  587.     break;
  588.     case WM_COMMAND:
  589.     {
  590.         switch (LOWORD(wParam))
  591.         {
  592.  
  593.         case IDC_FOTOMASC:
  594.         {
  595.             if (vez < 2)
  596.             {
  597.                 if (PhotoMasc == 0)
  598.                 {
  599.                     OPENFILENAME ofn;
  600.                     ZeroMemory(&ofn, sizeof(ofn));
  601.  
  602.                     ofn.hwndOwner = hDlg4;
  603.                     ofn.lStructSize = sizeof(ofn);
  604.                     ofn.lpstrFile = citas[c].chFilePhotoMasc;
  605.                     ofn.nMaxFile = MAX_PATH;
  606.                     ofn.lpstrDefExt = "BMP";
  607.                     ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
  608.                     ofn.lpstrFilter = "Bitmap Files (*.bmp)\0*.bmp\0\0""";
  609.                     if (GetOpenFileName(&ofn)) {
  610.                         HWND hPcFotoMASC = GetDlgItem(hDlg4, IDC_STATICMASCO);
  611.                         HBITMAP hBmpFotoMasc = (HBITMAP)LoadImage(NULL, citas[c].chFilePhotoMasc, IMAGE_BITMAP, 120, 110, LR_LOADFROMFILE);
  612.                         SendMessage(hPcFotoMASC, STM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)hBmpFotoMasc);
  613.                     }
  614.                     vez++;
  615.                 }
  616.  
  617.                 if (PhotoMasc == 1)
  618.                 {
  619.                     OPENFILENAME ofn;
  620.                     ZeroMemory(&ofn, sizeof(ofn));
  621.  
  622.                     ofn.hwndOwner = hDlg4;
  623.                     ofn.lStructSize = sizeof(ofn);
  624.                     ofn.lpstrFile = citas[c].chFilePhotoMasc1;
  625.                     ofn.nMaxFile = MAX_PATH;
  626.                     ofn.lpstrDefExt = "BMP";
  627.                     ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
  628.                     ofn.lpstrFilter = "Bitmap Files (*.bmp)\0*.bmp\0\0""";
  629.                     if (GetOpenFileName(&ofn)) {
  630.                         HWND hPcFotoMASC1 = GetDlgItem(hDlg4, IDC_STATICMASCO2);
  631.                         HBITMAP hBmpFotoMasc1 = (HBITMAP)LoadImage(NULL, citas[c].chFilePhotoMasc1, IMAGE_BITMAP, 120, 110, LR_LOADFROMFILE);
  632.                         ShowWindow(GetDlgItem(hDlg4, IDC_STATICMASCO), SW_HIDE);
  633.                         SendMessage(hPcFotoMASC1, STM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)hBmpFotoMasc1);
  634.                     }
  635.                     vez++;
  636.                 }
  637.  
  638.                 PhotoMasc++;
  639.  
  640.                 if (PhotoMasc == 2)
  641.                 {
  642.                     EnableWindow(GetDlgItem(hDlg4, 1053), TRUE);
  643.                     EnableWindow(GetDlgItem(hDlg4, 1054), TRUE);
  644.                     PhotoMasc = 0;
  645.  
  646.                 }
  647.                 else
  648.                 {
  649.                     EnableWindow(GetDlgItem(hDlg4, 1053), FALSE);
  650.                     EnableWindow(GetDlgItem(hDlg4, 1054), FALSE);
  651.  
  652.                 }
  653.             }
  654.            
  655.  
  656.         }
  657.         break;
  658.         case IDC_GUARDARDATOS: /*observar que todos los campos estén llenos*/
  659.         {
  660.             validatos = 2;
  661.  
  662.             int txtlenghttel = (int)GetWindowTextLength(GetDlgItem(hDlg4, IDC_TELEFONO)); //telefono
  663.             GetWindowText(GetDlgItem(hDlg4, IDC_TELEFONO), citas[c].telefono, txtlenghttel + 1);
  664.  
  665.             if (!(txtlenghttel == 8 || txtlenghttel == 12 || txtlenghttel == 10))
  666.             {
  667.                 MessageBox(NULL, "NO INGRESÓ CORRECTAMENTE EL TELEFONO", NULL, MB_ICONERROR);
  668.                 validatos = 1;
  669.                 break;
  670.             }
  671.             else
  672.             {
  673.                 for (int i = 0; i < txtlenghttel; i++)
  674.                 {
  675.  
  676.                     if (!(citas[c].telefono[i] == '1' || citas[c].telefono[i] == '2' || citas[c].telefono[i] == '3' || citas[c].telefono[i] == '4' || citas[c].telefono[i] == '5' || citas[c].telefono[i] == '6' || citas[c].telefono[i] == '7' || citas[c].telefono[i] == '8' || citas[c].telefono[i] == '9' || citas[c].telefono[i] == '0'))
  677.                     {
  678.                         MessageBox(NULL, "NO INGRESÓ CORRECTAMENTE EL TELEFONO", NULL, MB_ICONERROR);
  679.                         validatos = 1;
  680.                         break;
  681.                     }
  682.                 }
  683.             }
  684.  
  685.             int txtlengmotiv = (int)GetWindowTextLength(GetDlgItem(hDlg4, IDC_EDIT4)); //motivo consulta
  686.             GetWindowText(GetDlgItem(hDlg4, IDC_EDIT4), citas[c].motivoconsulta, txtlengmotiv + 1);
  687.  
  688.             int lenmasco = (int)GetWindowTextLength(GetDlgItem(hDlg4, IDC_NOMBREMASCO)); //nombre mascota
  689.             GetWindowText(GetDlgItem(hDlg4, IDC_NOMBREMASCO), citas[c].nombre_mascota, lenmasco + 1);
  690.             if (lenmasco == 0)
  691.             {
  692.                 MessageBox(NULL, "INGRESE EL NOMBRE DE MASCOTA", NULL, MB_ICONERROR);
  693.                 validatos = 1;
  694.             }
  695.             for (int i = 0; i < lenmasco; i++)
  696.             {
  697.  
  698.                 if (!(isalpha(citas[c].nombre_mascota[i]) || isspace(citas[c].nombre_mascota[i])))
  699.                 {
  700.                     MessageBox(NULL, "NO INGRESÓ CORRECTAMENTE EL NOMBRE DE MASCOTA", NULL, MB_ICONERROR);
  701.                     validatos = 1;
  702.                     break;
  703.                 }
  704.             }
  705.  
  706.             int lenclient = (int)GetWindowTextLength(GetDlgItem(hDlg4, IDC_NOMBRECLIENTE)); //nombre cliente
  707.             GetWindowText(GetDlgItem(hDlg4, IDC_NOMBRECLIENTE), citas[c].nombre_cliente, lenclient + 1);
  708.             if (lenclient == 0)
  709.             {
  710.                 MessageBox(NULL, "INGRESE EL NOMBRE DEL CLIENTE", NULL, MB_ICONERROR);
  711.                 validatos = 1;
  712.             }
  713.             for (int i = 0; i < lenclient; i++)
  714.             {
  715.                 if (!(isalpha(citas[c].nombre_cliente[i]) || isspace(citas[c].nombre_cliente[i])))
  716.                 {
  717.                     MessageBox(NULL, "NO INGRESÓ CORRECTAMENTE EL NOMBRE DEL CLIENTE", NULL, MB_ICONERROR);
  718.                     validatos = 1;
  719.                     break;
  720.                 }
  721.             }
  722.  
  723.            
  724.             int posCombo = (int)SendDlgItemMessage(hDlg4, IDC_COMBO1, CB_GETCURSEL, 0, 0); //especie
  725.             if (posCombo < 0)
  726.             {
  727.                 MessageBox(NULL, "Seleccione esepecie", NULL, MB_ICONWARNING);
  728.                 validatos = 1;
  729.             }
  730.             else {
  731.                 int lenmasco = GetWindowTextLength(GetDlgItem(hDlg4, IDC_COMBO1));
  732.                 GetWindowText(GetDlgItem(hDlg4, IDC_COMBO1), citas[c].tipo_de_mascota, lenmasco+1);
  733.             }
  734.        
  735.  
  736.             int posCombo2 = (int)SendDlgItemMessage(hDlg4, IDC_COMBO2, CB_GETCURSEL, 0, 0); //hora
  737.             if (posCombo2 < 0)
  738.             {
  739.                 MessageBox(NULL, "Seleccione hora de consulta", NULL, MB_ICONWARNING);
  740.                 validatos = 1;
  741.             }
  742.             else {
  743.                 int lenhora = GetWindowTextLength(GetDlgItem(hDlg4, IDC_COMBO2));
  744.                 GetWindowText(GetDlgItem(hDlg4, IDC_COMBO2), citas[c].hora, lenhora + 1);
  745.                 citas[c].horaverdadera = atoi(citas[c].hora);
  746.             }
  747.  
  748.  
  749.             int txtlenghtcost = (int)GetWindowTextLength(GetDlgItem(hDlg4, IDC_COSTO)); //costo
  750.             GetWindowText(GetDlgItem(hDlg4, IDC_COSTO), citas[c].costo_consulta, txtlenghtcost + 1);
  751.  
  752.             if (txtlenghtcost == 0)
  753.             {
  754.                 MessageBox(NULL, "INGRESE EL COSTO", NULL, MB_ICONERROR);
  755.                 validatos = 1;
  756.             }
  757.             int contpunt = 0;
  758.  
  759.             for (int i = 0; i < txtlenghtcost; i++)
  760.             {
  761.                 if (citas[c].costo_consulta[i] == '.')
  762.                 {
  763.                     contpunt++;
  764.                 }
  765.                 if ((!(citas[c].costo_consulta[i] == '1' || citas[c].costo_consulta[i] == '2' || citas[c].costo_consulta[i] == '3' || citas[c].costo_consulta[i] == '4' || citas[c].costo_consulta[i] == '5'
  766.                     || citas[c].costo_consulta[i] == '6' || citas[c].costo_consulta[i] == '7' || citas[c].costo_consulta[i] == '8' || citas[c].costo_consulta[i] == '9'
  767.                     || citas[c].costo_consulta[i] == '0' || citas[c].costo_consulta[i] == '.')) || contpunt > 1)
  768.                 {
  769.  
  770.                     MessageBox(NULL, "NO INGRESÓ CORRECTAMENTE EL COSTO", NULL, MB_ICONERROR);
  771.                     validatos = 1;
  772.                     break;
  773.                 }
  774.  
  775.             }
  776.             int a = strlen(citas[c].chFilePhotoMasc);
  777.             int b = strlen(citas[c].chFilePhotoMasc1);
  778.             if (a == 0 || b==0)
  779.             {
  780.                 MessageBox(NULL, "NO INGRESÓ FOTO DE MASCOTA", NULL, MB_ICONERROR);
  781.                 validatos = 1;
  782.             }
  783.             if (validatos == 2 && validatoss == 2)
  784.             {
  785.                 EndDialog(hDlg4, 0);
  786.                 c++;
  787.             }
  788.         }
  789.         break;
  790.         }
  791.  
  792.         if (MostrarImagen == 0)
  793.         {
  794.             if (LOWORD(wParam) == IDC_CAMBIOIM2 && HIWORD(wParam) == BN_CLICKED)
  795.             {
  796.                 ShowWindow(GetDlgItem(hDlg4, IDC_STATICMASCO), SW_SHOW);
  797.                 ShowWindow(GetDlgItem(hDlg4, IDC_STATICMASCO2), SW_HIDE);
  798.  
  799.  
  800.             }MostrarImagen = 1;
  801.         }
  802.  
  803.         if (MostrarImagen == 1)
  804.         {
  805.             if (LOWORD(wParam) == IDC_CAMBIOIM1 && HIWORD(wParam) == BN_CLICKED)
  806.             {
  807.                 ShowWindow(GetDlgItem(hDlg4, IDC_STATICMASCO), SW_HIDE);
  808.                 ShowWindow(GetDlgItem(hDlg4, IDC_STATICMASCO2), SW_SHOW);
  809.  
  810.  
  811.             }MostrarImagen = 0;
  812.         }
  813.  
  814.  
  815.         //menu ventanas
  816.         switch (LOWORD(wParam))
  817.         {
  818.             case ID_INFORMACION_DOCTORES:
  819.             DialogBox(hDlg2, MAKEINTRESOURCE(IDCC_DLG2), hDlg4, call_IDCC_DLG2);
  820.             break;
  821.  
  822.         /*case ID_NUEVACITA_ALTA:
  823.             EndDialog(hDlg2, FALSE);
  824.             DialogBox(hDlg4, MAKEINTRESOURCE(IDD_DIALOG3), hDlg2, call_IDCC_DLG4);
  825.             break;*/
  826.         case ID_AGENDA_VERAGENDA:
  827.             if (c > 0)
  828.             {
  829.                 EndDialog(hDlg4, FALSE);
  830.                 DialogBox(hDlg8, MAKEINTRESOURCE(IDD_AGENDA), hDlg4, call_AGENDA);
  831.  
  832.             }
  833.             else {
  834.                 MessageBoxA(NULL, "No hay citas programadas, vuelva mas tarde", "ERROR", MB_ICONERROR);
  835.             }
  836.             break;
  837.         case IDC_SALIR: /*se va a guardar todo antes de salir*/
  838.         {
  839.  
  840.             //guardar en archivo binario
  841.  
  842.             if (!(MessageBoxA(NULL, "¿SEGURO QUE DESEA SALIR?", "ERROR", MB_YESNO) == IDNO))
  843.             {
  844.                 DestroyWindow(hWnd);
  845.             }
  846.             break;
  847.         }
  848.  
  849.         }
  850.         break;
  851.     }
  852.     case WM_CLOSE:
  853.         break;
  854.  
  855.     case WM_NOTIFY:
  856.         lpNmHdr = LPNMHDR(lParam); // el lpnmhdr es un puntero que te dirá qué pasó con el control(en este caso el calendario)
  857.         //es en lparam porque ahi se alamcena la informacion de los controles
  858.  
  859.         if (lpNmHdr->code == MCN_SELECT)
  860.         {
  861.             hStatic = GetDlgItem(hDlg4, IDC_STATICDATE);
  862.             hCalendar = GetDlgItem(hDlg4, IDC_MONTHCALENDAR1);
  863.             GetSelectedDate(hStatic, hCalendar);
  864.             break;
  865.         }
  866.  
  867.         break;
  868.     }
  869.  
  870.  
  871.     return FALSE;
  872. }
  873. BOOL CALLBACK call_IDCAGENDA_CAMBIO(HWND hDlg5, UINT msg, WPARAM wParam, LPARAM lParam) /*dialogo cambio de cita*/
  874. {
  875.     switch (msg)
  876.     {
  877.  
  878.         LPNMHDR lpNmHdr;
  879.     case WM_INITDIALOG:
  880.     {
  881.        
  882.         //foto doc
  883.         HWND hFoto4ev = GetDlgItem(hDlg5, IDC_STATICdoc4eve);
  884.         SendMessage(hFoto4ev, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)(HBITMAP)LoadImage(NULL, docs[0].chFilePhoto, IMAGE_BITMAP, 100, 100, LR_LOADFROMFILE));
  885.    
  886.         //foto 1
  887.         HWND hPcFotoMASC = GetDlgItem(hDlg5, IDC_STATICMASCO);
  888.         HBITMAP hBmpFotoMasc = (HBITMAP)LoadImage(NULL, citas[pos].chFilePhotoMasc, IMAGE_BITMAP, 120, 110, LR_LOADFROMFILE);
  889.         SendMessage(hPcFotoMASC, STM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)hBmpFotoMasc);
  890.         //foto 2
  891.         HWND hPcFotoMASC1 = GetDlgItem(hDlg5, IDC_STATICMASCO5);
  892.         HBITMAP hBmpFotoMasc1 = (HBITMAP)LoadImage(NULL, citas[pos].chFilePhotoMasc1, IMAGE_BITMAP, 120, 110, LR_LOADFROMFILE);
  893.         SendMessage(hPcFotoMASC1, STM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)hBmpFotoMasc1);
  894.  
  895.         hComboEsp = GetDlgItem(hDlg5, IDC_COMBO1);
  896.         SendMessage(hComboEsp, CB_ADDSTRING, 0, (LPARAM)"Perro");
  897.         SendMessage(hComboEsp, CB_ADDSTRING, 0, (LPARAM)"Gato");
  898.         SendMessage(hComboEsp, CB_ADDSTRING, 0, (LPARAM)"Tortuga");
  899.         SendMessage(hComboEsp, CB_ADDSTRING, 0, (LPARAM)"Hámster");
  900.         SendMessage(hComboEsp, CB_ADDSTRING, 0, (LPARAM)"Cuyo");
  901.         SendMessage(hComboEsp, CB_ADDSTRING, 0, (LPARAM)"Conejo");
  902.         SendMessage(hComboEsp, CB_ADDSTRING, 0, (LPARAM)"Pájaro");
  903.         SendMessage(hComboEsp, CB_ADDSTRING, 0, (LPARAM)"Pez");
  904.  
  905.         hComboHora = GetDlgItem(hDlg5, IDC_COMBO2);
  906.         SendMessage(hComboHora, CB_ADDSTRING, 0, (LPARAM)"09:00");
  907.         SendMessage(hComboHora, CB_ADDSTRING, 0, (LPARAM)"10:00");
  908.         SendMessage(hComboHora, CB_ADDSTRING, 0, (LPARAM)"11:00");
  909.         SendMessage(hComboHora, CB_ADDSTRING, 0, (LPARAM)"12:00");
  910.         SendMessage(hComboHora, CB_ADDSTRING, 0, (LPARAM)"13:00");
  911.         SendMessage(hComboHora, CB_ADDSTRING, 0, (LPARAM)"14:00");
  912.         SendMessage(hComboHora, CB_ADDSTRING, 0, (LPARAM)"15:00");
  913.         SendMessage(hComboHora, CB_ADDSTRING, 0, (LPARAM)"16:00");
  914.         SendMessage(hComboHora, CB_ADDSTRING, 0, (LPARAM)"17:00");
  915.         SendMessage(hComboHora, CB_ADDSTRING, 0, (LPARAM)"18:00");
  916.         SendMessage(hComboHora, CB_ADDSTRING, 0, (LPARAM)"19:00");
  917.         SendMessage(hComboHora, CB_ADDSTRING, 0, (LPARAM)"20:00");
  918.         SendMessage(hComboHora, CB_ADDSTRING, 0, (LPARAM)"21:00");
  919.  
  920.         //Aquí va todo
  921.         SetWindowText(GetDlgItem(hDlg5, IDC_NOMBRECLIENTE), citas[pos].nombre_cliente);
  922.         SetWindowText(GetDlgItem(hDlg5, IDC_TELEFONO), citas[pos].telefono);
  923.         SetWindowText(GetDlgItem(hDlg5, IDC_NOMBREMASCO), citas[pos].nombre_mascota);
  924.         SetWindowText(hComboEsp, citas[pos].tipo_de_mascota);
  925.         SetWindowText(GetDlgItem(hDlg5, IDC_EDIT4), citas[pos].motivoconsulta);
  926.         SetWindowText(hComboHora, citas[pos].hora);
  927.         SetWindowText(GetDlgItem(hDlg5, IDC_COSTO), citas[pos].costo_consulta);
  928.  
  929.  
  930.     }
  931.     break;
  932.     case WM_COMMAND:
  933.     {
  934.         switch (LOWORD(wParam))
  935.         {
  936.             PhotoMasc = 0;
  937.  
  938.             char telefono[12];
  939.             char photomasco[MAX_PATH];
  940.             char photomasco1[260];
  941.             char motivo[MAX_PATH];
  942.             char nombremasco[10];
  943.             char nombrecliente[40];
  944.             char tipomasoc[15];
  945.             char hora[5];
  946.             char costo_consulta[10];
  947.  
  948.         case IDC_FOTOMASC:
  949.         {
  950.            
  951.             if (PhotoMasc == 0)
  952.             {
  953.                 if (strlen(citas[pos].chFilePhotoMasc) > 0)
  954.                 {
  955.                     strcpy_s(citas[pos].chFilePhotoMasc, 260, " ");
  956.                 }
  957.  
  958.                 OPENFILENAME ofn;
  959.                 ZeroMemory(&ofn, sizeof(ofn));
  960.  
  961.                 ofn.hwndOwner = hDlg5;
  962.                 ofn.lStructSize = sizeof(ofn);
  963.                 ofn.lpstrFile = citas[pos].chFilePhotoMasc;
  964.                 ofn.nMaxFile = MAX_PATH;
  965.                 ofn.lpstrDefExt = "BMP";
  966.                 ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
  967.                 ofn.lpstrFilter = "Bitmap Files (*.bmp)\0*.bmp\0\0""";
  968.                 if (GetOpenFileName(&ofn)) {
  969.                     HWND hPcFotoMASC = GetDlgItem(hDlg5, IDC_STATICMASCO);
  970.                     HBITMAP hBmpFotoMasc = (HBITMAP)LoadImage(NULL, citas[pos].chFilePhotoMasc, IMAGE_BITMAP, 120, 110, LR_LOADFROMFILE);
  971.                     SendMessage(hPcFotoMASC, STM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)hBmpFotoMasc);
  972.  
  973.                 }
  974.                 PhotoMasc++;
  975.                 break;
  976.  
  977.             }
  978.  
  979.             if (PhotoMasc == 1)
  980.             {
  981.                 if (strlen(citas[pos].chFilePhotoMasc1) > 0)
  982.                 {
  983.                     strcpy_s(citas[pos].chFilePhotoMasc1, 260, " ");
  984.                 }
  985.                 OPENFILENAME ofn;
  986.                 ZeroMemory(&ofn, sizeof(ofn));
  987.  
  988.                 ofn.hwndOwner = hDlg5;
  989.                 ofn.lStructSize = sizeof(ofn);
  990.                 ofn.lpstrFile = citas[pos].chFilePhotoMasc1;
  991.                 ofn.nMaxFile = MAX_PATH;
  992.                 ofn.lpstrDefExt = "BMP";
  993.                 ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
  994.                 ofn.lpstrFilter = "Bitmap Files (*.bmp)\0*.bmp\0\0""";
  995.                 if (GetOpenFileName(&ofn)) {
  996.                     HWND hPcFotoMASC1 = GetDlgItem(hDlg5, IDC_STATICMASCO2);
  997.                     HBITMAP hBmpFotoMasc1 = (HBITMAP)LoadImage(NULL, citas[pos].chFilePhotoMasc1, IMAGE_BITMAP, 120, 110, LR_LOADFROMFILE);
  998.                     SendMessage(hPcFotoMASC1, STM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)hBmpFotoMasc1);
  999.                 }
  1000.                 PhotoMasc--;
  1001.                 break;
  1002.             }
  1003.         }
  1004.         break;
  1005.         case IDC_GUARDARDATOS: /*observar que todos los campos estén llenos*/
  1006.         {
  1007.             validatos = 2;
  1008.  
  1009.             int txtlenghttel = (int)GetWindowTextLength(GetDlgItem(hDlg5, IDC_TELEFONO)); //telefono
  1010.             GetWindowText(GetDlgItem(hDlg5, IDC_TELEFONO), telefono, txtlenghttel + 1);
  1011.  
  1012.             if (txtlenghttel > 0)
  1013.             {
  1014.                 strcpy_s(citas[pos].telefono, 12, " ");
  1015.                 if (!(txtlenghttel == 8 || txtlenghttel == 12 || txtlenghttel == 10))
  1016.                 {
  1017.                     MessageBox(NULL, "NO INGRESÓ CORRECTAMENTE EL TELEFONO", NULL, MB_ICONERROR);
  1018.                     validatos = 1;
  1019.                     break;
  1020.                 }
  1021.                 else
  1022.                 {
  1023.                     for (int i = 0; i < txtlenghttel; i++)
  1024.                     {
  1025.  
  1026.                         if (!(telefono[i] == '1' || telefono[i] == '2' || telefono[i] == '3' || telefono[i] == '4' || telefono[i] == '5' || telefono[i] == '6' || telefono[i] == '7' || telefono[i] == '8' || telefono[i] == '9' || telefono[i] == '0'))
  1027.                         {
  1028.                             MessageBox(NULL, "NO INGRESÓ CORRECTAMENTE EL TELEFONO", NULL, MB_ICONERROR);
  1029.                             validatos = 1;
  1030.                             break;
  1031.                         }
  1032.                     }
  1033.                 }
  1034.  
  1035.                 strcpy_s(citas[pos].telefono, telefono);
  1036.  
  1037.             }
  1038.  
  1039.             int txtlengmotiv = (int)GetWindowTextLength(GetDlgItem(hDlg5, IDC_EDIT4)); //motivo consulta
  1040.             GetWindowText(GetDlgItem(hDlg5, IDC_EDIT4), motivo, txtlengmotiv + 1);
  1041.             if (txtlengmotiv > 0)
  1042.             {
  1043.                 strcpy_s(citas[pos].motivoconsulta, 260, " ");
  1044.                 strcpy_s(citas[pos].motivoconsulta, motivo);
  1045.  
  1046.             }
  1047.  
  1048.  
  1049.             int lenmasco = (int)GetWindowTextLength(GetDlgItem(hDlg5, IDC_NOMBREMASCO)); //nombre mascota
  1050.             GetWindowText(GetDlgItem(hDlg5, IDC_NOMBREMASCO), nombremasco, lenmasco + 1);
  1051.  
  1052.             if (lenmasco > 0)
  1053.             {
  1054.                 strcpy_s(citas[pos].nombre_mascota, 10, " ");
  1055.  
  1056.                 for (int i = 0; i < lenmasco; i++)
  1057.                 {
  1058.  
  1059.                     if (!(isalpha(nombremasco[i]) || isspace(nombremasco[i])))
  1060.                     {
  1061.                         MessageBox(NULL, "NO INGRESÓ CORRECTAMENTE EL NOMBRE DE MASCOTA", NULL, MB_ICONERROR);
  1062.                         validatos = 1;
  1063.                         break;
  1064.                     }
  1065.                 }
  1066.  
  1067.                 strcpy_s(citas[pos].nombre_mascota, nombremasco);
  1068.  
  1069.             }
  1070.  
  1071.  
  1072.             int lenclient = (int)GetWindowTextLength(GetDlgItem(hDlg5, IDC_NOMBRECLIENTE)); //nombre cliente
  1073.             GetWindowText(GetDlgItem(hDlg5, IDC_NOMBRECLIENTE), nombrecliente, lenclient + 1);
  1074.  
  1075.             if (lenclient > 0)
  1076.             {
  1077.                 strcpy_s(citas[pos].nombre_cliente, 40, " ");
  1078.  
  1079.                 for (int i = 0; i < lenclient; i++)
  1080.                 {
  1081.                     if (!(isalpha(nombrecliente[i]) || isspace(nombrecliente[i])))
  1082.                     {
  1083.                         MessageBox(NULL, "NO INGRESÓ CORRECTAMENTE EL NOMBRE DEL CLIENTE", NULL, MB_ICONERROR);
  1084.                         validatos = 1;
  1085.                         break;
  1086.                     }
  1087.                 }
  1088.  
  1089.                 strcpy_s(citas[pos].nombre_cliente, nombrecliente);
  1090.  
  1091.             }
  1092.  
  1093.  
  1094.             int posCombo = (int)SendDlgItemMessage(hDlg5, IDC_COMBO1, CB_GETCURSEL, 0, 0); //especie
  1095.             if (posCombo > 0)
  1096.             {
  1097.                 int lenmasco = GetWindowTextLength(GetDlgItem(hDlg5, IDC_COMBO1));
  1098.                 GetWindowText(GetDlgItem(hDlg5, IDC_COMBO1), citas[c].tipo_de_mascota, lenmasco + 1);
  1099.             }
  1100.            
  1101.  
  1102.  
  1103.             int posCombo2 = (int)SendDlgItemMessage(hDlg5, IDC_COMBO2, CB_GETCURSEL, 0, 0); //hora
  1104.             if (posCombo2 > 0)
  1105.             {
  1106.                 int lenhora = GetWindowTextLength(GetDlgItem(hDlg5, IDC_COMBO2));
  1107.                 GetWindowText(GetDlgItem(hDlg5, IDC_COMBO2), citas[c].hora, lenhora + 1);
  1108.             }
  1109.            
  1110.  
  1111.             int txtlenghtcost = (int)GetWindowTextLength(GetDlgItem(hDlg5, IDC_COSTO)); //costo
  1112.             GetWindowText(GetDlgItem(hDlg5, IDC_COSTO), costo_consulta, txtlenghtcost + 1);
  1113.  
  1114.             if (txtlenghtcost > 0)
  1115.             {
  1116.                 strcpy_s(citas[pos].costo_consulta, 10, " ");
  1117.  
  1118.                 int contpunt = 0;
  1119.  
  1120.                 for (int i = 0; i < txtlenghtcost; i++)
  1121.                 {
  1122.                     if (costo_consulta[i] == '.')
  1123.                     {
  1124.                         contpunt++;
  1125.                     }
  1126.                     if ((!(costo_consulta[i] == '1' || costo_consulta[i] == '2' || costo_consulta[i] == '3' || costo_consulta[i] == '4' || costo_consulta[i] == '5'
  1127.                         || costo_consulta[i] == '6' || costo_consulta[i] == '7' || costo_consulta[i] == '8' || costo_consulta[i] == '9'
  1128.                         || costo_consulta[i] == '0' || costo_consulta[i] == '.')) || contpunt > 1)
  1129.                     {
  1130.  
  1131.                         MessageBox(NULL, "NO INGRESÓ CORRECTAMENTE EL COSTO", NULL, MB_ICONERROR);
  1132.                         validatos = 1;
  1133.                         break;
  1134.                     }
  1135.  
  1136.                 }
  1137.                 strcpy_s(citas[pos].costo_consulta, costo_consulta);
  1138.  
  1139.             }
  1140.  
  1141.             if (validatos == 2 && validatoss == 2)
  1142.             {
  1143.                 EndDialog(hDlg5, 0);
  1144.                 c++;
  1145.             }
  1146.         }
  1147.         break;
  1148.         }
  1149.  
  1150.         if (MostrarImagen == 0)
  1151.         {
  1152.             if (LOWORD(wParam) == IDC_CAMBIOIM2 && HIWORD(wParam) == BN_CLICKED)
  1153.             {
  1154.                 ShowWindow(GetDlgItem(hDlg5, IDC_STATICMASCO), SW_SHOW);
  1155.                 ShowWindow(GetDlgItem(hDlg5, IDC_STATICMASCO3), SW_HIDE);
  1156.  
  1157.  
  1158.             }MostrarImagen = 1;
  1159.         }
  1160.  
  1161.         if (MostrarImagen == 1)
  1162.         {
  1163.             if (LOWORD(wParam) == IDC_CAMBIOIM1 && HIWORD(wParam) == BN_CLICKED)
  1164.             {
  1165.                 ShowWindow(GetDlgItem(hDlg5, IDC_STATICMASCO), SW_HIDE);
  1166.                 ShowWindow(GetDlgItem(hDlg5, IDC_STATICMASCO3), SW_SHOW);
  1167.  
  1168.  
  1169.             }MostrarImagen = 0;
  1170.         }
  1171.  
  1172.         break;
  1173.     }
  1174.     case WM_CLOSE:
  1175.         break;
  1176.  
  1177.     case WM_NOTIFY:
  1178.         lpNmHdr = LPNMHDR(lParam); // el lpnmhdr es un puntero que te dirá qué pasó con el control(en este caso el calendario)
  1179.         //es en lparam porque ahi se alamcena la informacion de los controles
  1180.  
  1181.         if (lpNmHdr->code == MCN_SELECT)
  1182.         {
  1183.             hStatic = GetDlgItem(hDlg5, IDC_STATICDATE);
  1184.             hCalendar = GetDlgItem(hDlg5, IDC_MONTHCALENDAR1);
  1185.             GetSelectedDate(hStatic, hCalendar);
  1186.             break;
  1187.         }
  1188.  
  1189.         break;
  1190.     }
  1191.     return FALSE;
  1192. }
  1193. BOOL CALLBACK call_AGENDA(HWND hDlg8, UINT msg, WPARAM wParam, LPARAM lParam)/*dialogo agenda*/
  1194. {
  1195.     switch (msg)
  1196.     {
  1197.     case WM_INITDIALOG:
  1198.     {
  1199.         hLbA = GetDlgItem(hDlg8, IDC_LIST1);
  1200.         HWND hFoto4ev = GetDlgItem(hDlg8, IDC_FOTODOC);
  1201.         SendMessage(hFoto4ev, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)(HBITMAP)LoadImage(NULL, docs[0].chFilePhoto, IMAGE_BITMAP, 100, 100, LR_LOADFROMFILE));
  1202.  
  1203.         //Acomodar las citas
  1204.  
  1205.         for (int i = 0; i < c; i++) {
  1206.             for (int j = i + 1; j < c; j++) {
  1207.  
  1208.                 if (citas[i].year > citas[j].year)
  1209.                 {
  1210.                     citastempo = citas[j];
  1211.                     citas[j] = citas[i];
  1212.                     citas[i] = citastempo;
  1213.                 }
  1214.                 else if (citas[i].year == citas[j].year
  1215.                     && citas[i].month > citas[j].month)
  1216.                 {
  1217.                     citastempo = citas[j];
  1218.                     citas[j] = citas[i];
  1219.                     citas[i] = citastempo;
  1220.                 }
  1221.                 else if (citas[i].year == citas[j].year
  1222.                     && citas[i].month == citas[j].month
  1223.                     && citas[i].day > citas[j].day)
  1224.                 {
  1225.                     citastempo = citas[j];
  1226.                     citas[j] = citas[i];
  1227.                     citas[i] = citastempo;
  1228.                 }
  1229.                 else if (citas[i].year == citas[j].year
  1230.                     && citas[i].month == citas[j].month
  1231.                     && citas[i].day == citas[j].day
  1232.                     && citas[i].horaverdadera > citas[j].horaverdadera)
  1233.                 {
  1234.                     citastempo = citas[j];
  1235.                     citas[j] = citas[i];
  1236.                     citas[i] = citastempo;
  1237.                 }
  1238.             }
  1239.         }
  1240.         for (int i = 0; i < c; i++)
  1241.         {
  1242.             dia = to_string(citas[i].day);
  1243.             mes = to_string(citas[i].month);
  1244.             año = to_string(citas[i].year);
  1245.             fecha = dia + "/" + mes+  "/" + año + "  "+ citas[i].hora;
  1246.             SendMessage(GetDlgItem(hDlg8, IDC_LIST1), LB_ADDSTRING, 0, (LPARAM)fecha.c_str());
  1247.  
  1248.         }
  1249.     }
  1250.     break;
  1251.     case WM_COMMAND:
  1252.     {
  1253.  
  1254.         switch (LOWORD(wParam))
  1255.         {
  1256.  
  1257.         case IDC_BNTMOSTRAR:
  1258.         {
  1259.             pos = posicion(hDlg8);
  1260.             if (pos >= 0)
  1261.             {
  1262.                 dia = to_string(citas[pos].day);
  1263.                 mes = to_string(citas[pos].month);
  1264.                 año = to_string(citas[pos].year);
  1265.                 fecha = dia + "/" + mes + "/" + año;
  1266.                 SetWindowText(GetDlgItem(hDlg8, IDC_STATICCLIENTE), citas[pos].nombre_cliente);
  1267.                 SetWindowText(GetDlgItem(hDlg8, IDC_STATICMASCOTA), citas[pos].nombre_mascota);
  1268.                 SetWindowText(GetDlgItem(hDlg8, IDC_STATICFECHA), fecha.c_str());
  1269.                 SetWindowText(GetDlgItem(hDlg8, IDC_STATICOSTO), citas[pos].costo_consulta);
  1270.  
  1271.             }
  1272.  
  1273.         }
  1274.         break;
  1275.         case IDC_BTNELIMINAR:
  1276.         {
  1277.             pos = posicion(hDlg8);
  1278.  
  1279.  
  1280.             if (pos >= 0)
  1281.             {
  1282.                 for (int j = pos; j < c; j++)
  1283.                 {
  1284.                     citas[j] = citas[j + 1];
  1285.                 }
  1286.                 c--;
  1287.                 SendMessage(GetDlgItem(hDlg8, IDC_LIST1), LB_DELETESTRING, pos, 0);
  1288.  
  1289.                 MessageBox(NULL, "Cita eliminada", NULL, MB_ICONWARNING);
  1290.             }
  1291.  
  1292.         }
  1293.         break;
  1294.         case IDC_BTNCAMBIAR:
  1295.         {
  1296.             pos = posicion(hDlg8);
  1297.  
  1298.             if (pos >= 0)
  1299.             {
  1300.                 DialogBox(hDlg7, MAKEINTRESOURCE(IDD_NUEVACITA_CAMBIO), hDlg8, call_IDCAGENDA_CAMBIO); /*venatana de cambio */
  1301.  
  1302.             }
  1303.             else
  1304.             {
  1305.                 MessageBox(NULL, "There're not appoiments yet my darling", NULL, MB_ICONWARNING);
  1306.  
  1307.             }
  1308.  
  1309.         }
  1310.         break;
  1311.         case IDC_BTNPAGAR:
  1312.         {
  1313.             pos = posicion(hDlg8);
  1314.  
  1315.             if (pos >= 0)
  1316.             {
  1317.                 DialogBox(hDlg9, MAKEINTRESOURCE(IDD_PAGAR), hDlg8, call_IDDPAGAR); /*venatana de pagar */
  1318.  
  1319.             }
  1320.             else
  1321.             {
  1322.                 MessageBox(NULL, "There're not appoiments yet my darling", NULL, MB_ICONWARNING);
  1323.  
  1324.             }
  1325.  
  1326.         }
  1327.         break;
  1328.         }
  1329.     }
  1330.     break;
  1331.     case WM_CLOSE:
  1332.         EndDialog(hDlg8, FALSE);
  1333.         break;
  1334.     }
  1335.     return 0;
  1336. }
  1337. BOOL CALLBACK call_IDDPAGAR(HWND hDlg9, UINT msg, WPARAM wParam, LPARAM lParam)
  1338. {
  1339.     switch (msg)
  1340.     {
  1341.     case WM_INITDIALOG:
  1342.     {
  1343.         EnableWindow(GetDlgItem(hDlg9, IDC_CINTERESES), FALSE);
  1344.         EnableWindow(GetDlgItem(hDlg9, IDC_SINTERESES), FALSE);
  1345.         hStaticPM= (GetDlgItem(hDlg9, IDC_PAGOPMES));
  1346.    
  1347.         dia = to_string(citas[i].day);
  1348.         mes = to_string(citas[i].month);
  1349.         año = to_string(citas[i].year);
  1350.         fecha = dia + "/" + mes + "/" + año + "  " + citas[i].hora;
  1351.  
  1352.         HWND hFoto4ev = GetDlgItem(hDlg9, IDC_FOTODOC);
  1353.         SendMessage(hFoto4ev, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)(HBITMAP)LoadImage(NULL, docs[0].chFilePhoto, IMAGE_BITMAP, 100, 100, LR_LOADFROMFILE));
  1354.  
  1355.         SetWindowText(GetDlgItem(hDlg9, IDC_NOMBRECLIENTE), citas[pos].nombre_cliente);
  1356.         SetWindowText(GetDlgItem(hDlg9, IDC_TELEFONO), citas[pos].telefono);
  1357.         SetWindowText(GetDlgItem(hDlg9, IDC_NOMBREMASCO), citas[pos].nombre_mascota);
  1358.         SetWindowText(GetDlgItem(hDlg9, IDC_NOMBRECLIENTE), citas[pos].nombre_cliente);
  1359.         SetWindowText(GetDlgItem(hDlg9, IDC_COMBO1), citas[pos].tipo_de_mascota);
  1360.         SetWindowText(GetDlgItem(hDlg9, IDC_EDIT4), citas[pos].motivoconsulta);
  1361.         SetWindowText(GetDlgItem(hDlg9, IDC_COMBO2), citas[pos].hora);
  1362.         SetWindowText(GetDlgItem(hDlg9, IDC_COSTO), citas[pos].costo_consulta);
  1363.         SetWindowText(GetDlgItem(hDlg9, IDC_STATICDATE), fecha.c_str());
  1364.         //foto 1
  1365.         HWND hPcFotoMASC = GetDlgItem(hDlg9, IDC_STATICMASCO);
  1366.         HBITMAP hBmpFotoMasc = (HBITMAP)LoadImage(NULL, citas[pos].chFilePhotoMasc, IMAGE_BITMAP, 120, 110, LR_LOADFROMFILE);
  1367.         SendMessage(hPcFotoMASC, STM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)hBmpFotoMasc);
  1368.         ShowWindow(hPcFotoMASC, SW_HIDE);
  1369.         //foto 2
  1370.         HWND hPcFotoMASC1 = GetDlgItem(hDlg9, IDC_STATICMASCO3);
  1371.         HBITMAP hBmpFotoMasc1 = (HBITMAP)LoadImage(NULL, citas[pos].chFilePhotoMasc1, IMAGE_BITMAP, 120, 110, LR_LOADFROMFILE);
  1372.         SendMessage(hPcFotoMASC1, STM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)hBmpFotoMasc1);
  1373.  
  1374.         //deshabilitar botones de visualizador
  1375.  
  1376.         if (PhotoMasc == 2)
  1377.         {
  1378.             EnableWindow(GetDlgItem(hDlg9, IDC_CAMBIOIM1), TRUE);
  1379.             EnableWindow(GetDlgItem(hDlg9, IDC_CAMBIOIM2), TRUE);
  1380.  
  1381.         }  
  1382.     }
  1383.     break;
  1384.  
  1385.     case WM_COMMAND:
  1386.     {
  1387.         if (HIWORD(wParam) == BN_CLICKED)
  1388.         {
  1389.             switch (LOWORD(wParam))
  1390.             {
  1391.             case IDC_3MESES:
  1392.             {
  1393.                 EnableWindow(GetDlgItem(hDlg9, IDC_CINTERESES), TRUE);
  1394.                 EnableWindow(GetDlgItem(hDlg9, IDC_SINTERESES), TRUE);
  1395.  
  1396.             }
  1397.             break;
  1398.             case IDC_6MESES:
  1399.             {
  1400.                 EnableWindow(GetDlgItem(hDlg9, IDC_CINTERESES), TRUE);
  1401.                 EnableWindow(GetDlgItem(hDlg9, IDC_SINTERESES), TRUE);
  1402.  
  1403.             }
  1404.             break;
  1405.             case IDC_9MESES:
  1406.             {
  1407.                 EnableWindow(GetDlgItem(hDlg9, IDC_CINTERESES), TRUE);
  1408.                 EnableWindow(GetDlgItem(hDlg9, IDC_SINTERESES), TRUE);
  1409.  
  1410.             }
  1411.             break;
  1412.             }
  1413.         }
  1414.  
  1415.         if (LOWORD(wParam) == IDC_CINTERESES && HIWORD(wParam) == BN_CLICKED) {
  1416.             if (IsDlgButtonChecked(hDlg9, IDC_3MESES) == BST_CHECKED) {
  1417.                 pagototal_i(3);
  1418.  
  1419.             }
  1420.             else if (IsDlgButtonChecked(hDlg9, IDC_3MESES) == BST_CHECKED) {
  1421.                 pagototal_i(6);
  1422.  
  1423.             }
  1424.             else if (IsDlgButtonChecked(hDlg9, IDC_3MESES) == BST_CHECKED) {
  1425.                 pagototal_i(9);
  1426.  
  1427.             }
  1428.         }
  1429.  
  1430.         if (LOWORD(wParam) == IDC_SINTERESES && HIWORD(wParam) == BN_CLICKED) {
  1431.             if (IsDlgButtonChecked(hDlg9, IDC_3MESES) == BST_CHECKED) {
  1432.                 pagototal_s(3);
  1433.             }
  1434.             else if (IsDlgButtonChecked(hDlg9, IDC_3MESES) == BST_CHECKED) {
  1435.                 pagototal_s(6);
  1436.  
  1437.             }
  1438.             else if (IsDlgButtonChecked(hDlg9, IDC_3MESES) == BST_CHECKED) {
  1439.                  pagototal_s(9);   
  1440.             }
  1441.         }
  1442.         if (MostrarImagen == 0)
  1443.         {
  1444.             if (LOWORD(wParam) == IDC_CAMBIOIM2 && HIWORD(wParam) == BN_CLICKED)
  1445.             {
  1446.                 ShowWindow(GetDlgItem(hDlg9, IDC_STATICMASCO), SW_SHOW);
  1447.                 ShowWindow(GetDlgItem(hDlg9, IDC_STATICMASCO3), SW_HIDE);
  1448.  
  1449.  
  1450.             }MostrarImagen = 1;
  1451.         }
  1452.  
  1453.         if (MostrarImagen == 1)
  1454.         {
  1455.             if (LOWORD(wParam) == IDC_CAMBIOIM1 && HIWORD(wParam) == BN_CLICKED)
  1456.             {
  1457.                 ShowWindow(GetDlgItem(hDlg9, IDC_STATICMASCO), SW_HIDE);
  1458.                 ShowWindow(GetDlgItem(hDlg9, IDC_STATICMASCO3), SW_SHOW);
  1459.  
  1460.  
  1461.             }MostrarImagen = 0;
  1462.         }
  1463.  
  1464.     }
  1465.     break;
  1466.     }
  1467.     return FALSE;
  1468. }
  1469.  
  1470. int GetSelectedDate(HWND hStatic, HWND hCalendar)
  1471. {
  1472.  
  1473.  
  1474.     SYSTEMTIME timeobtained; //variable tipo estructura para el tiempo que se obtendrá
  1475.     SYSTEMTIME time2; //variable tipo estructura para el tiempo actual
  1476.     GetLocalTime(&time2); //tiempo actual se obtiene
  1477.     ZeroMemory(&timeobtained, sizeof(SYSTEMTIME)); //se limpia la estructura del tiempo obtenido
  1478.     wchar_t buffer[MAX_PATH]; //aquí se crea un buffer que va a recibir el string
  1479.     size_t size = 20; //aquí va el tamaño del buffer en bytes
  1480.     SendMessage(hCalendar, MCM_GETCURSEL, 0, (LPARAM)&timeobtained); //aquí toma la fecha
  1481.     StringCbPrintfW(buffer, size, L"%d-%d-%d", timeobtained.wDay, timeobtained.wMonth, timeobtained.wYear); //pasa la fecha al buffer
  1482.  
  1483.     if (timeobtained.wYear <= time2.wYear)
  1484.     {
  1485.         if (timeobtained.wMonth <= time2.wMonth)
  1486.         {
  1487.             if (timeobtained.wDay <= time2.wDay)
  1488.             {
  1489.                 MessageBox(NULL, "Ingresó fecha errónea", NULL, MB_ICONERROR);
  1490.                 validatoss = 1;
  1491.             }
  1492.             else
  1493.             {
  1494.                 citas[c].year = timeobtained.wYear;
  1495.                 citas[c].month = timeobtained.wMonth;
  1496.                 citas[c].day = timeobtained.wDay;
  1497.                 validatoss = 2;
  1498.             }
  1499.         }
  1500.         else
  1501.         {
  1502.             citas[c].year = timeobtained.wYear;
  1503.             citas[c].month = timeobtained.wMonth;
  1504.             citas[c].day = timeobtained.wDay;
  1505.             validatoss = 2;
  1506.         }
  1507.     }
  1508.     else
  1509.     {
  1510.         citas[c].year = timeobtained.wYear;
  1511.         citas[c].month = timeobtained.wMonth;
  1512.         citas[c].day = timeobtained.wDay;
  1513.         validatoss = 2;
  1514.     }
  1515.  
  1516.     SetWindowTextW(hStatic, buffer);
  1517.     return validatoss;
  1518. }
  1519. int posicion(HWND hDlg) {
  1520.  
  1521.     int pos = (int)SendDlgItemMessage(hDlg, IDC_LIST1, LB_GETCURSEL, 0, 0);
  1522.     {
  1523.         if (pos < 0)
  1524.         {
  1525.             MessageBox(NULL, "Seleccione cita", NULL, MB_ICONWARNING);
  1526.         }
  1527.     }
  1528.  
  1529.     return pos;
  1530. }
  1531. void pagototal_i(int mes)
  1532. {
  1533.     float precioint = ((atoi(citas[pos].costo_consulta)) * 1.12 / mes);
  1534.     string precio_int = to_string(precioint);
  1535.  
  1536.     SetWindowText(hStaticPM, precio_int.c_str());
  1537.     for (int i = 0; i < c; i++)
  1538.     {
  1539.         citas[i] = citas[i + 1];
  1540.     }
  1541.     c--;
  1542.     SendMessage(hLbA, LB_DELETESTRING, pos, 0);
  1543. }
  1544. void pagototal_s(int mes)
  1545. {
  1546.     float preciosin = ((atoi(citas[pos].costo_consulta)) / mes);
  1547.     string precio_sin = to_string(preciosin);
  1548.  
  1549.  
  1550.     SetWindowText(hStaticPM, precio_sin.c_str());
  1551.     for (int i = 0; i < c; i++)
  1552.     {
  1553.         citas[i] = citas[i + 1];
  1554.     }
  1555.     c--;
  1556.     SendMessage(hLbA, LB_DELETESTRING, pos, 0);
  1557. }
  1558. void guardar_info() {
  1559.  
  1560.     ofstream file;
  1561.     file.open("llora es lo mejor que puedes hacer.bin", ios::binary | ios::out);
  1562.     if (file.fail())
  1563.     {
  1564.         MessageBox(NULL, "No me mande a terceras:c", NULL, MB_ICONWARNING);
  1565.     }
  1566.     else
  1567.     {
  1568.         for (int i = 0; i < c; i++)
  1569.         {
  1570.             file.write((char*)&citas[i], sizeof(appointment));
  1571.         }
  1572.         for (int i = 0; i < 1; i++)
  1573.         {
  1574.             file.write((char*)&docs[i], sizeof(doctores));
  1575.         }
  1576.     }
  1577.     file.close();
  1578. }
  1579. void leer_datos() {
  1580.  
  1581.     ifstream file1("llora es lo mejor que puedes hacer.bin", ios::in | ios::binary);
  1582.     if (file1.fail())
  1583.     {
  1584.         MessageBox(NULL, "No me mande a terceras:c", NULL, MB_ICONWARNING);
  1585.     }
  1586.     else
  1587.     {
  1588.         while (!file1.eof())
  1589.         {
  1590.             for (int i = 0; i < 3; i++)
  1591.             {
  1592.                 file1.read((char*)&citas[i], sizeof(appointment));
  1593.             }
  1594.             for (int i = 0; i < 1; i++)
  1595.             {
  1596.                 file1.read((char*)&docs[i], sizeof(doctores));
  1597.             }
  1598.         }
  1599.  
  1600.     }
  1601. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top