Fichier ressource .rc et fonts

Résolu
bunob Messages postés 4 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 10 novembre 2010 - 10 nov. 2010 à 14:51
bunob Messages postés 4 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 10 novembre 2010 - 10 nov. 2010 à 21:48
Bonjour,

J'essaie d'appliquer une police particulière sur un contrôle :
#include <windows.h>
#include "resource.h"
#include "winres.h"
....
FONT 18, "MS Sans Serif"
BEGIN
CTEXT "0",IDC_AFR, 130, 30, 500, 320, WS_BORDER
END

C'est un extrait du fichier ressource.rc, quand je compile j'obtiens l'erreur suivante avec visual C++ :
error RC2111 : invalid control type

J'ai lu sur MSDN FONT Statement qu'il faut utiliser la fonction LoadResource mais je n'ai aucune idée de comment l'utiliser.
Je n'ai pas trouver d'exemple de code.

Je bloque, quelqu'un peut il m'aider ?

Merci.

bunob

2 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
10 nov. 2010 à 19:12
HFONT hfnt = 0;

On prepare ici la font, exemple:
case WM_INITDIALOG:
LOGFONT lf;
RECT rc;
hctrl = GetDlgItem(hdlg, IDC_AFR);
GetClientRect(hctrl, &rc);
lf.lfHeight = -(rc.right * 5 / 6);
lf.lfWidth = 0;
*((UINT64*) &lf.lfEscapement) = 0; // lfEscapement & lfOrientation
lf.lfWeight = FW_SEMIBOLD; // +16
*((DWORD*) &lf.lfItalic) = 0; // +20
*((DWORD*) &lf.lfOutPrecision) = 0; // +24
*((DWORD*) lf.lfFaceName) = 0x61697241;
*((DWORD*) (lf.lfFaceName + 4)) = 0x6C; // "Arial"
hfnt = CreateFontIndirect(&lf);
lf.lfHeight = -14;
lf.lfWeight = FW_BOLD;
*((DWORD*) lf.lfFaceName) = 0x72756F63; // "cour
*((DWORD*) (lf.lfFaceName + 4)) = 0x20726569; // "courier "
*((DWORD*) (lf.lfFaceName + 8)) = 0x77656E; // "courier new"
hfntLst = CreateFontIndirect(&lf);
SendMessage(hctrl, WM_SETFONT, (WPARAM) hfnt, 0);

TU ADAPTERAS A TON CAS.

ciao...
BruNews, MVP VC++
3
bunob Messages postés 4 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 10 novembre 2010
10 nov. 2010 à 21:48
Nickel !

Merci beaucoup !
0
Rejoignez-nous