Schriftart und Richedit Problem



  • Also mein Richedit hab ich so erstellt

    HWND richedit = CreateWindowEx(WS_EX_WINDOWEDGE,RICHEDIT_CLASS,"",WS_CHILD|WS_VISIBLE|ES_MULTILINE|ES_AUTOVSCROLL|WS_VSCROLL,chatlogposX,chatlogposY,chatlogWidth,chatlogHeight,hDlg,NULL,GetModuleHandle(NULL),NULL);
    

    und

    void AddText(HWND hEdit, const char *text, int r, int g, int b)
    {
    	char *cpyText = (char *)malloc(strlen(text) + 10);
    	sprintf(cpyText, "%s\n", text);
    	int nCpyText = strlen(cpyText);
    
    	CHARFORMAT cfSysText;
    	ZeroMemory(&cfSysText, sizeof(CHARFORMAT));
    	cfSysText.cbSize = sizeof(CHARFORMAT);
    	cfSysText.dwMask = CFM_COLOR | CFM_SIZE;
    	cfSysText.crTextColor = RGB(r, g, b);
    	cfSysText.bCharSet = DEFAULT_CHARSET;
    	cfSysText.bPitchAndFamily = DEFAULT_PITCH;
    	cfSysText.yHeight = 32; 
    	strcpy(cfSysText.szFaceName, "Arial");
    
    	int nLength = GetWindowTextLength(hEdit);
    	SendMessage(hEdit, EM_SETSEL, nLength, nLength);
    	SendMessage(hEdit, EM_REPLACESEL, FALSE, (LPARAM)cpyText);
    	SendMessage(hEdit, EM_SETSEL, nLength, nLength + nCpyText);
    	SendMessage(hEdit, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&cfSysText);
    	SendMessage(hEdit, EM_SETSEL, nLength + nCpyText, nLength + nCpyText);
    
    	free(cpyText);
    }
    

    Aber er zeigt mir nie Arial an ! Immer nur die Schrift art "System" ..



  • Wie siehts aus mit den Return-Werten ? Speziell von:

    SendMessage(hEdit, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&cfSysText);
    

    ➡ ?



  • cfSysText.dwMask = CFM_BOLD | CFM_COLOR | CFM_SIZE | CFM_FACE;
    

    jetzt gehts


Anmelden zum Antworten