Я пытаюсь создать собственный текстовый редактор, который может изменять шрифт и цвет определенных напечатанных слов.Как мне изменить шрифт и / или цвет текста, который я выделяю с помощью курсора?
Я еще не пытался выделить часть выделения.Я попытался получить всю область hEdit (HWND) и изменить шрифт, но это, похоже, не работает.
//In my WndProc (Being handled when I click the Format->Color menu item)
HWND hEdit;
hEdit = GetDlgItem(hwnd, IDC_MAIN_EDIT);
DoSelectColor(hEdit);
//In my WndProc (Being handled when I click the Format->Font menu item)
HWND hEdit;
hEdit = GetDlgItem(hwnd, IDC_MAIN_EDIT);
DoSelectFont(hEdit, hFont);
//Selecting Color
void DoSelectColor(HWND hwnd) {
CHOOSECOLOR cc = {sizeof(CHOOSECOLOR)};
cc.Flags = CC_RGBINIT | CC_FULLOPEN || CC_ANYCOLOR;
cc.hwndOwner = hwnd;
cc.rgbResult = g_rgbBackground;
cc.lpCustColors = g_rgbCustom;
if(ChooseColor(&cc)) {
g_rgbBackground = cc.rgbResult;
}
}
//Selecting Font
void DoSelectFont(HWND hwnd, HFONT f) {
CHOOSEFONT cf = {sizeof(CHOOSEFONT)};
LOGFONT lf;
GetObject(f, sizeof(LOGFONT), &lf);
cf.Flags = CF_EFFECTS | CF_INITTOLOGFONTSTRUCT | CF_SCREENFONTS;
cf.hwndOwner = hwnd;
cf.lpLogFont = &lf;
if(ChooseFont(&cf)) {
HFONT hf = CreateFontIndirect(&lf);
if(hf) {
f = hf;
}
}
}
Я бы хотел изменить область hEdit, но я 'Я довольно новичок в C / C ++ и не могу понять, почему он не меняет цвет области hEdit.