API utilisation de Rich Edit avec dev c++

Fermé
Richard Cote - 10 août 2005 à 00:37
 mindslight - 25 sept. 2007 à 10:58
Bonjour à tous,

Je veux créer un Rich Edit en utilisant les APIs de windows, j'ai trouvé ce bout de code:
 
#include <commctrl.h>

LRESULT CALLBACK MainWndProc(HWND hwnd, UINT uMsg, PARAM wParam, LPARAM lParam)
{
    static HWND hEdit;
    static HWND hsb;
    static BOOL EditNotChg = TRUE;
    switch (uMsg)
    {
     case WM_CREATE:
     InitCommonControls();
//Rich Edit 
{
HFONT hFont;
hEdit = CreateWindow("RICHEDIT_CLASS", "",WS_CHILD | WS_VISIBLE | ES_MULTILINE | ES_WANTRETURN | WS_VSCROLL, 0, 0, 0, 0, hwnd, NULL, hinst, NULL);
hFont = (HFONT)GetStockObject(ANSI_FIXED_FONT);
SendMessage(hEdit,WM_SETFONT,(UINT)hFont,TRUE);
SendMessage(hEdit, EM_SETMARGINS, EC_LEFTMARGIN | EC_RIGHTMARGIN, MAKELONG(5, 5));
            
 return 0;
 }    

Malheureusement! Le code ne fonctionne pas et je ne comprend pas pourquoi.

Lorsque je remplace "RICHEDIT_CLASS" par "EDIT" tout fonctionne corectement.

Merci.
A voir également:

3 réponses

Essai d'utiliser AfxInitRichEdit dans le InitInstance
0
LoadLibrary("RICHED20.DLL");

ca marche mieux ainsi pas besoin de AfxInitRichEdit !!!! qui lui demande un plug des mfcs
0
HWND hEdit;
hEdit = CreateWindowEx(0, RICHEDIT_CLASS, "",
WS_CHILD|WS_VISIBLE|ES_SAVESEL|ES_MULTILINE|ES_AUTOVSCROLL|WS_VSCROLL|ES_AUTOHSCROLL|WS_HSCROLL|ES_AUTOHSCROLL|ES_SUNKEN,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
hwnd, (HMENU)IDC_CHILD_EDIT, g_hInst, NULL);

CHARFORMAT2 lpFmt;

SendMessage(hEdit, EM_SETBKGNDCOLOR, 0, (LPARAM)RGB(255,255,255));
lpFmt.cbSize = sizeof(lpFmt);
lpFmt.dwMask = CFM_BOLD|CFM_COLOR|CFM_SIZE|CFM_ITALIC|CFM_UNDERLINE|CFM_FACE;
lpFmt.crTextColor = RGB(0,0,0);
lpFmt.yHeight = 220;
lpFmt.dwEffects = 0 ;
lpFmt.bCharSet = ANSI_CHARSET;
lpFmt.bPitchAndFamily = DEFAULT_PITCH;
lstrcpy(lpFmt.szFaceName, "Arial");
SendMessage(hEdit, EM_SETCHARFORMAT, SCF_ALL, (DWORD)&lpFmt);
0