Soyez le premier à donner votre avis sur cette source.
Vue 8 810 fois - Téléchargée 841 fois
#include <windows> #include <string> #include "ouvrir.h" #include "sauver.h" #include "resource.h" #include "aide.h" LRESULT CALLBACK WndProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { char temp[512]; bool ouvert=false; bool sauve=false; static char TitreComplet[512]="Texteditor version 1.0 "; static char CheminFichier[512]; static char NomFichier[512]; static OPENFILENAME ofn; switch(uMsg) { case WM_CREATE: HFONT MaPolice; HWND FenetreText; LoadLibrary("RICHED32.DLL"); FenetreText = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT",NULL,WS_VSCROLL | WS_HSCROLL | WS_CHILD | WS_VISIBLE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_MULTILINE , CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,hWnd, NULL,GetModuleHandle(NULL),NULL); MaPolice = CreateFont(18,7,0,1,FW_MEDIUM, FALSE,FALSE,FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, FF_DECORATIVE, "Perso"); SendMessage(FenetreText,WM_SETFONT,(WPARAM) MaPolice,MAKELPARAM(TRUE, 0)); if(!FenetreText) { MessageBoxEx(NULL,"Error creating Text Window!","Error",MB_OK|MB_ICONERROR,0x040c); return false; } SetProp(hWnd,"Title",(HANDLE)"Texteditor version 1.0 "); SetProp(hWnd,"EstNouveau",(HANDLE)true); SetProp(hWnd,"EstSauvegarde",(HANDLE)true); strcpy(NomFichier,"Untitled"); break; case WM_COMMAND: switch(LOWORD(wParam)) { case FICHIER_NOUVEAU: strcpy(NomFichier,"Untitled"); SetDlgItemText(hWnd, 0, ""); SetProp(hWnd,"EstSauvegarde",(HANDLE)true); SetProp(hWnd,"EstNouveau",(HANDLE)true); SetProp(hWnd,"NomFichier",(HANDLE)"Untitled"); strcpy(TitreComplet,(const char*)GetProp(hWnd,"Title")); SetWindowText(hWnd,TitreComplet); break; case FICHIER_OUVRIR: ofn = OuvrirFichier(hWnd,ouvert); if(ouvert) { strcpy(CheminFichier,ofn.lpstrFile); SetProp(hWnd,"EstSauvegarde",(HANDLE)true); SetProp(hWnd,"EstNouveau",(HANDLE)false); strcpy(temp,(const char*)GetProp(hWnd,"Title")); strcat(temp,"["); strcat(temp,ofn.lpstrFileTitle); strcpy(NomFichier,ofn.lpstrFileTitle); strcat(temp,"]"); strcpy(TitreComplet,temp); SetWindowText(hWnd,temp); } break; case FICHIER_SAVE: if(!(bool)GetProp(hWnd,"EstNouveau")) { SauverFichier(hWnd,CheminFichier); SetProp(hWnd,"EstSauvegarde",(HANDLE)true); strcpy(temp,TitreComplet); SetWindowText(hWnd,temp); break; } case FICHIER_SAVEAS: ofn = SauverSousFichier(hWnd,sauve); if(sauve) { strcpy(CheminFichier,ofn.lpstrFile); SetProp(hWnd,"EstSauvegarde",(HANDLE)true); SetProp(hWnd,"EstNouveau",(HANDLE)false); strcpy(temp,(const char*)GetProp(hWnd,"Title")); strcat(temp,"["); strcat(temp,ofn.lpstrFileTitle); strcpy(NomFichier,ofn.lpstrFileTitle); strcat(temp,"]"); strcpy(TitreComplet,temp); SetWindowText(hWnd,temp); } break; case FICHIER_PRINT: break; case FICHIER_QUITTER: if((bool)GetProp(hWnd,"EstNouveau") || !(bool)GetProp(hWnd,"EstSauvegarde")) { char Text[512] = "Le texte du fichier ["; strcat(Text,NomFichier); strcat(Text,"] a été modifié.\n\n Souhaitez-vous l'enregistrer ?"); switch(MessageBoxEx(NULL, Text, "Texteditor version 1.0", MB_YESNOCANCEL|MB_ICONWARNING, 0x040c)) { case IDYES: if((bool)GetProp(hWnd,"EstNouveau")) SendMessage(hWnd,WM_COMMAND,FICHIER_SAVEAS,NULL); else SendMessage(hWnd,WM_COMMAND,FICHIER_SAVE,NULL); break; case IDNO: PostQuitMessage(0); break; case IDCANCEL: break; } } else PostQuitMessage(0); break; case EDITION_ANNULER: SendMessage(GetDlgItem(hWnd,NULL),EM_UNDO,0,0); break; case EDITION_COUPER: SendMessage(GetDlgItem(hWnd,NULL),WM_CUT,0,0); break; case EDITION_COPIER: SendMessage(GetDlgItem(hWnd,NULL),WM_COPY,0,0); break; case EDITION_COLLER: SendMessage(GetDlgItem(hWnd,NULL),WM_PASTE,0,0); break; case EDITION_SUPPRIMER: SendMessage(GetDlgItem(hWnd,NULL),WM_CLEAR,0,0); break; case EDITION_RECHERCHER: break; case EDITION_RECHERCHER_SUIV: break; case EDITION_REMPLACER: break; case EDITION_ATTEINDRE: break; case EDITION_SELECTIONNER_TOUT: SendMessage(GetDlgItem(hWnd,NULL),EM_SETSEL,(WPARAM)(INT)0,(LPARAM)(INT)-1); break; case EDITION_HEURE_DATE: break; case AIDE_PROPOS: DialogBox(GetModuleHandle(NULL),"AIDEDIALOG",hWnd,AideDialogProc); break; } switch(HIWORD(wParam)) { case EN_CHANGE: SetProp(hWnd,"EstSauvegarde",(HANDLE)false); strcpy(temp,TitreComplet); strcat(temp, " *"); SetWindowText(hWnd,temp); break; } break; case WM_CLOSE: SendMessage(hWnd,WM_COMMAND,(WPARAM)FICHIER_QUITTER,NULL); break; case WM_DESTROY: PostQuitMessage(0); break; case WM_SIZE: { HWND FenetreEnfant; RECT rcClient; GetClientRect(hWnd, &rcClient); FenetreEnfant = GetDlgItem(hWnd,NULL); SetWindowPos(FenetreEnfant, NULL, 0, 0, rcClient.right, rcClient.bottom, NULL); } break; default: return DefWindowProc(hWnd, uMsg, wParam, lParam); } return (0L); } int APIENTRY WinMain(HINSTANCE InstanceCourante, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd ) { HCURSOR MonCurseur; WNDCLASSEX wndPrinc; MSG msg; HWND FenetreParent; HACCEL hAccel; HANDLE hinstAcc; wndPrinc.cbSize = sizeof(WNDCLASSEX); wndPrinc.hIconSm = LoadIcon(InstanceCourante, "Texteditor");; wndPrinc.style = CS_VREDRAW | CS_HREDRAW; wndPrinc.lpfnWndProc = (WNDPROC)WndProc; wndPrinc.lpszClassName = "Texteditor"; wndPrinc.lpszMenuName = "Texteditor"; wndPrinc.cbClsExtra = 0; wndPrinc.cbWndExtra = 0; wndPrinc.hbrBackground = (HBRUSH)(COLOR_WINDOW); wndPrinc.hCursor = LoadCursor(NULL,IDC_ARROW); wndPrinc.hIcon = LoadIcon(InstanceCourante, "Texteditor"); wndPrinc.hInstance = InstanceCourante; if(!RegisterClassEx(&wndPrinc)) { MessageBoxEx(NULL,"Error Registering wndPrinc Class!","Error",MB_OK|MB_ICONERROR,0x040c); return false; } FenetreParent = CreateWindowEx(WS_EX_DLGMODALFRAME, "Texteditor","Texteditor version 1.0", WS_OVERLAPPEDWINDOW | WS_VISIBLE , CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL, NULL,InstanceCourante,NULL); if(!FenetreParent) { MessageBoxEx(NULL,"Error creating Principal Window!","Error",MB_OK|MB_ICONERROR,0x040c); return false; } hAccel = LoadAccelerators(InstanceCourante, "TabAccel"); while(GetMessage(&msg,NULL,0,0)) { if(!hAccel || !TranslateAccelerator(FenetreParent, hAccel, &msg)) { TranslateMessage(&msg); DispatchMessage(&msg); } } return msg.wParam; }
22 oct. 2007 à 00:20
26 août 2003 à 17:16
1. plus propre
2. plus facil :)
je cmp pas pk tutilise win32 alor ke qt ta lair de connaitre :)
c grace a toi ke g commencer QT alor.. :d
;)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.