Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2019
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 44.69 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement