begin process at 2012 05 29 10:34:56
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

GUI

 > 

ECRITURE FICHIER LOGFONT


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

ECRITURE FICHIER LOGFONT

jeudi 11 juin 2009 à 11:10:42 | ECRITURE FICHIER LOGFONT

lectpe

Bonjour

dans mon application, j'utilise un fenêtre de dialogue de sélection de police d'écriture :

VOID SelectMainFont(HWND hwnd, HWND hRichEdit)
{
   ZeroMemory(&lf, sizeof(LOGFONT));
   lstrcpy(lf.lfFaceName, "Courier New");
   lf.lfHeight = 10;
   hFont = CreateFontIndirect(&lf);

   CHOOSEFONT cf;
   ZeroMemory(&cf, sizeof(CHOOSEFONT));
   cf.lStructSize = sizeof (CHOOSEFONT);
   cf.hwndOwner = hwnd;
   cf.lpLogFont = &lf;
   cf.Flags = CF_SCREENFONTS | CF_INITTOLOGFONTSTRUCT;

   if (ChooseFont(&cf))
   {
      DeleteObject(hFont);
      hFont = CreateFontIndirect(&lf);
      SendMessage(hRichEdit,WM_SETFONT,(UINT)hFont,TRUE);
      SaveFontValues();
   }
}

Je voudrais sauvegarder les changements dans un fichier texte grâce à cette fonction :

VOID SaveFontValues()
{
   char *ConfigFile = "settings/fnts.cnf";
   FILE *fp = fopen(ConfigFile, "w");
   fprintf(fp, "[ BEGIN ]\n");
   fprintf(fp, "[ FontName ] = #%s\n", lf.lfFaceName);
   fprintf(fp, "[ FontSize ] = #\n");
   fprintf(fp, "[ FontWeight ] = #\n");
   fprintf(fp, "[ FontItalic ] = #\n");
   fprintf(fp, "[ FontCharSet ] = #\n");
   fprintf(fp, "[ END ]\n");
   fclose(fp);
}

J'ai réussi à écrire le nom de la police d'écriture dans le fichier texte (lf.lfFaceName).

Je voudrais écrire aussi :
lfHeight (LONG)
lfWeight (LONG)
lfItalic (BYTE)
lfCharSet (BYTE)

J'ai essayer beaucoup de choses %i, %d et %s pour afficher les valeurs.

Mais ça ne marche pas...

Si vous savez comment écrire dans un fichier texte :
un LONG
ou
un BYTE

Répondez moi, svp.

Merci d'avance.

Cordialement, Grégory.

jeudi 11 juin 2009 à 11:17:50 | Re : ECRITURE FICHIER LOGFONT

lectpe

Bon bah pour italic, j'ai trouvé, c'est %x.
jeudi 11 juin 2009 à 11:23:05 | Re : ECRITURE FICHIER LOGFONT

lectpe

Pour lfWeight, pareil.
jeudi 11 juin 2009 à 11:26:22 | Re : ECRITURE FICHIER LOGFONT

lectpe

Bon bah j'ai trouvé pour tous sauf pour Height.

J'ai des valeurs comme -11 si je fais %i...
jeudi 11 juin 2009 à 11:32:31 | Re : ECRITURE FICHIER LOGFONT

lectpe

Bon bah même avec des valeurs de merde comme ça, il les reconnaît.

Genre je mets lf.lfHeight = 'õ';

ça marche...

Merci d'avoir répondu.
vendredi 12 juin 2009 à 02:55:04 | Re : ECRITURE FICHIER LOGFONT

racpp

Administrateur CodeS-SourceS
Salut,
Si c'est juste pour sauvegarder les valeurs de la police, un simple fichier binaire ferait l'affaire. Il suffira d'écrire directement le contenu de ta structure LOGFONT dans le fichier avec WriteFile() et ReadFile() pour récupérérer le contenu de la structure depuis le fichier.
vendredi 12 juin 2009 à 11:32:10 | Re : ECRITURE FICHIER LOGFONT

lectpe

Merci beaucoup racpp.

C'est exactement ce que je cherchais à faire.

J'ai fais d'une autre manière qui me parait moins bonne que d'écrire dans un fichier binaire, car je ne sais pas traiter les fichiers binaires.

Cordialement, Grégory.
vendredi 12 juin 2009 à 18:34:30 | Re : ECRITURE FICHIER LOGFONT

racpp

Administrateur CodeS-SourceS
Réponse acceptée !
Pour la sauvegarde:
    LOGFONT logfont;
    // Initialiser les membres de la strucure:
    //...
    HANDLE hfile=CreateFile("c:\\fichier.cnf", GENERIC_WRITE,0,0,CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL,0);
    if(hfile!=INVALID_HANDLE_VALUE)
    {
        DWORD writen;
        WriteFile(hfile,&logfont,sizeof(LOGFONT),&writen,0);
        CloseHandle(hfile);
    }

Pour le chargement:
            HANDLE hfile=CreateFile("c:\\fichier.cnf", GENERIC_READ,0,0, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
    if(hfile!=INVALID_HANDLE_VALUE)
    {
        DWORD read;
        ReadFile(hfile,&logfont,sizeof(LOGFONT),&read,0);
        CloseHandle(hfile);
    }

vendredi 12 juin 2009 à 18:42:47 | Re : ECRITURE FICHIER LOGFONT

lectpe

Ah bah décidément, t'es vraiment sympa.

Merci beaucoup pour ce bout de code que je vais intégrer de suite à mon programme.

Ca sera plus joli que mes fonctions...

Bye !!!


Cette discussion est classée dans : fichier, cf, fp, lf, fprintf


Répondre à ce message

Sujets en rapport avec ce message

pb ecriture ds fichier [ par YOHANONEILL ] bonjour, voila j'ai un programme ou j'écrit dans un fichier des lignes, mais parfois la ligne que j'insert dans le fichier s'écrit 20000 ou 60000 foi API : probleme avec choosefont() [ par shaolin78 ] bonjour,voila, je m'explique en qq lignes : le but du jeu est de pouvoir, dans une application style word (que j'ai créée), changer la police de mon t Couleur d'un pixel d'une fenêtre glut en mode RGB [ par bigbara ] Bonjour à tous,Je voudrais savoir s'il existait une fonction permettant de récupérer les composantesde la couleur d'un pixel de coordonnées (x,y) d'un j'arrive pas a ouvrir un fichier [ par angsthase ] Ou doit être placé le fichier texte si je veux l'ouvrir? Voici mon code : int main() {  FILE *fp = fopen ("fichier.txt","r");  if (fp == NULL) ouverture d'un fichier txt sur visualC++ [ par drcmomo ] Bonjour s'il vous plait aidez moi je dois ouvrir un fichier txt sur visual mon programme n'arrive pas a ouvrir le fichier. <SPAN style="F Erreur création d 'index [ par RootASM ] Bonjour,Voila, je crée un fichier qui contient des informations sur des membres d'un club et pour éviter de tout le temps accéder au fichier, je crée programme en C [ par rosco91 ] bonjour, cela fait deux jour que je cherche un programme qui me permettra de lire plusieur fichiers textes existants dans un dossier. J'ai un programm Convertion String char* [ par CerberusAbaka ] Bonjour;   Je développe avec Dev C++ un petit exécutable qui converti des PostScript couleur en noir et blanc, tout marche pas trop mal mais j'ait un Création fichier texte. [ par lillith212 ] Bonjour à tous,Très grande débutante sous le language C++, je dois modifier un programme existant.Celui-ci permet de transmettre des informations via charger un fichier sans indiquer le chemin complet ? [ par Batman60 ] salutcomment faire pour accéder à un fichier sans mentionner le chemin complet?le but c'est de pouvoir placer l'exe qui contient ce code n'importe ou


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,420 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales