API utilisation de Rich Edit avec dev c++
Richard Cote
-
mindslight -
mindslight -
Bonjour à tous,
Je veux créer un Rich Edit en utilisant les APIs de windows, j'ai trouvé ce bout de code:
Malheureusement! Le code ne fonctionne pas et je ne comprend pas pourquoi.
Lorsque je remplace "RICHEDIT_CLASS" par "EDIT" tout fonctionne corectement.
Merci.
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.
3 réponses
-
-
LoadLibrary("RICHED20.DLL");
ca marche mieux ainsi pas besoin de AfxInitRichEdit !!!! qui lui demande un plug des mfcs -
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);