![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Подскажите пожалуйста, как изменить цвет Static компонента, а точнее Edit в WINAPI. Нужно сделать фон у Edit черный, а буквы белыми (примерно как в CMD)Знаю что делается через сообщение WM_CTLCOLORSTATIC, но все примеры на C++, и в этом проблема, в нем я не силен. Нужно на Delphi.
|
#2
|
||||
|
||||
![]() нужно обрабатывать WM_CTLCOLOREDIT:
Код:
function WindowProc(hwnd: HWND; Msg: Integer; wParam: WPARAM; lParam: LPARAM): Longint; stdcall; begin case Msg of WM_CTLCOLOREDIT: begin SetBkColor(wParam, $00); SetTextColor(wParam, $ffffff); Result:=GetStockObject(BLACK_BRUSH); end; Пишу программы за еду. __________________ |
#3
|
|||
|
|||
![]() Цитата:
Код:
program Project1; uses Windows, Messages; {$SETPEFLAGS IMAGE_FILE_RELOCS_STRIPPED} const Memo_1 = 100; var MSG: TMSG; WC: TWndClass; hWindow, Memo: HWND; function WndProc(hWnd: HWND; Msg: UINT; WParam: Integer; lParam: Integer): Integer; stdcall; begin Result:=0; case msg of WM_CTLCOLOREDIT: begin SetBkColor(wParam, $00); SetTextColor(wParam, $ffffff); Result:=GetStockObject(BLACK_BRUSH); end; WM_DESTROY: begin PostQuitMessage(0); Exit; end; Result := DefWindowProc(hWnd, Msg, WParam, LParam); end; procedure CreateWindow; begin FillChar(WC, SizeOf(TWndClassEx), 0); WC.lpszClassName := 'Window'; WC.lpfnWndProc := @WndProc; WC.hbrBackground := 1; WC.hCursor := LoadCursor(0, IDC_ARROW); RegisterClass(WC); hWindow := CreateWindowEx(0, WC.lpszClassName,//Имя класса окна nil{Имя окна}, WS_VISIBLE or WS_DLGFRAME,//Стиль 200,300,400,200, 0, 0, hInstance,//Описатель приложения, с которым окно связывается nil); Memo := CreateWindowEx(WS_EX_CLIENTEDGE, 'Edit', nil, WS_CHILD or WS_VISIBLE or WS_VSCROLL or ES_AUTOHSCROLL or ES_MULTILINE or ES_WANTRETURN, 10, 10, 300, 100, hWindow, Memo_1, hInstance, nil); sendmessage(Memo, EM_REPLACESEL, 0, longword(pchar('Сообщение: '+#13#10))); ShowWindow(hWindow, SW_SHOW);//Показать окно UpDateWindow(hWindow);//Обновления окна end; //============================Конец "Создание формы"============================ begin CreateWindow; while GetMessage(MSG, 0, 0, 0) do begin TranslateMessage(MSG); DispatchMessage(MSG); end; end. |
#4
|
||||
|
||||
![]() Всё то, только для вашего варианта пропущена команда.
Код:
WM_CTLCOLOREDIT: begin SetBkColor(wParam, $00); SetTextColor(wParam, $ffffff); Result:=GetStockObject(BLACK_BRUSH); Exit; end; Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#5
|
|||
|
|||
![]() Большое спасибо все работает)
|