Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Цвет текста в Edit Box

16K
07 февраля 2007 года
cdc
27 / / 14.01.2007
Как изменить цвет текста в Edit Control?
Кто знает? Помогите!
1.8K
07 февраля 2007 года
_const_
229 / / 26.11.2003
Обрабатывай WM_CTLCOLOREDIT.
6.6K
07 февраля 2007 года
Scaiman
126 / / 25.07.2006
#include <windows.h>
#include <windowsx.h>
#include "resource.h"
#include <commctrl.h>

#pragma comment(lib, "comctl32.lib")

HBRUSH hDlgBrush; // кисть
HBRUSH hEditBrush;
void Dlg_Close(HWND hwnd)
{
EndDialog(hwnd, 0);
}

BOOL Dlg_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
{
hDlgBrush = CreateSolidBrush(RGB(0xc5, 0xc5, 0xc5));
hEditBrush = CreateSolidBrush(RGB(56, 118, 34));
return true;
}

void Dlg_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
switch (id)
{
case IDC_BUTTON2:
{
EndDialog(hwnd, 0);
break;
}
default: break;
}
}

BOOL OnCtlColor(HDC dc, HWND hWnd)
{
HBRUSH hbr = NULL;
COLORREF cr = RGB(0xA0, 0, 0);
BOOL mode = TRANSPARENT;
UINT ctrl = GetDlgCtrlID(hWnd);
switch(ctrl)
{
case IDC_EDIT1:
{
cr = RGB(0, 255, 0); // текст
hbr = (HBRUSH)GetStockObject(BLACK_BRUSH); // фон
break;
}
case IDC_EDIT2:
{
cr = RGB(144, 144, 144);
hbr = hEditBrush;
break;
}
break;
case IDC_EDIT3:
{
cr = RGB(255, 0, 0);
hbr = (HBRUSH)GetStockObject(GRAY_BRUSH);
break;
}
}
SetBkMode(dc, mode);
SetTextColor(dc, cr);
return (BOOL)hbr;
}

INT_PTR WINAPI Dlg_Proc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
HANDLE_MSG(hwnd, WM_INITDIALOG, Dlg_OnInitDialog);
HANDLE_MSG(hwnd, WM_COMMAND, Dlg_OnCommand);
HANDLE_MSG(hwnd, WM_CLOSE, Dlg_Close);
case WM_CTLCOLORSTATIC:
case WM_CTLCOLORDLG: return (int)hDlgBrush;
case WM_CTLCOLOREDIT: return OnCtlColor((HDC)wParam, (HWND)lParam);
}
return 0;
}
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
InitCommonControls();
DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_DIALOG1), NULL, Dlg_Proc);
return 0;
}
16K
07 февраля 2007 года
cdc
27 / / 14.01.2007
что, всё так сложно? а напрямую никак?
5.9K
07 февраля 2007 года
Zushenskiy
161 / / 29.06.2006
не чего здесь сложного нет просто пример был приведен не толоько для едита
тебе самое главное при сообщении WM_CTLCOLOREDIT вернуть кисть которой будет заливаться твой едит.
 
Код:
case WM_CTLCOLOREDIT:
return (LRESULT)GetStockObject(BLACK_BRUSH);//здесь возвращаю кисть по своему желанию у меня возвращаеться стандартная черная кисть которой зальется все едиты на твоем диалоге

и все
16K
07 февраля 2007 года
cdc
27 / / 14.01.2007
всем спасибо,
примерно на этом я остановился, изменение касается только цвета текста:

case WM_CTLCOLOREDIT:
SetBkMode((HDC)wParam,OPAQUE);
SetTextColor((HDC)wParam,RGB(0,128,0));
return (DWORD)GetSysColorBrush(COLOR_WINDOW);
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог