Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.26;
Скачать: CL | DM;

Вниз

Вопрос про едит   Найти похожие ветки 

 
Василий Петрович ©   (2003-04-19 19:36) [0]

Всем прива!
Есть едит. Какие сообщения надо ему послать, чтобы сменить цвета фона и едита. Знаю, что setbkcolor, но не умею использовать :(. С примером плз.


 
Diamond Cat ©   (2003-04-19 20:45) [1]

апишный или vcl-ный ?


 
Василий Петрович ©   (2003-04-19 23:11) [2]

апишный.


 
i-C3H7OH ©   (2003-04-19 23:12) [3]

WM_CTLCOLOREDIT


 
Василий Петрович ©   (2003-04-20 13:09) [4]

Не получаеццаааааа! :(
Кто-нибудь помогите, очень надо. Пытаюсь так:
WM_CTLCOLOREDIT: Setbkcolor(GetDlgItem(win,2),RGB(153,153,153));
В чем я ошибаюсь??


 
Songoku ©   (2003-04-20 14:42) [5]

Удалено модератором
Примечание: Offtopic


 
Василий Петрович ©   (2003-04-20 19:46) [6]

Кто кого затирает???


 
i-C3H7OH ©   (2003-04-20 22:47) [7]

>>Василий Петрович © (20.04.03 13:09)
WM_CTLCOLOREDIT: Setbkcolor(GetDlgItem(win,2),RGB(153,153,153));

что-то вы, Василий, совсем все напутали...
первый параметр Setbkcolor(); какого типа? да, hdc
а GetDlgItem(win,2) что возвращает? HWND, разницу чувствуете?

hdc это WParam, HWND это LParam

код такой, не ручаюсь что 100% правильный, но у меня работает


//оконная процедура владельца Едита
WM_CTLCOLOREDIT:
if HWND(LParam) = GetDlgItem(win,2) then
begin
SetBkColor(WParam,RGB(153,153,153));
Result := 0; // вообще-то надо браш вернуть, создать заранее и вернуть, но прёт и так
Exit;
end;



 
Василий Петрович ©   (2003-04-20 23:29) [8]

хм.. у меня что-то ен пашет.. :(


 
Василий Петрович ©   (2003-04-21 14:02) [9]

ув. i-C3H7OH!
Если Вам не трудно пришлите плз работающий исходник на backslash@smtp.ru
Буду безмерно благодарен!


 
i-C3H7OH ©   (2003-04-21 23:08) [10]

Удалено модератором


 
i-C3H7OH ©   (2003-04-21 23:10) [11]

мне проще это здесь выложить, не возражаешь?


{**********************************************************************}
{* ??????????? ? ????? "OpenGL ? ???????? Delphi" *}
{* ??????? ?.?. softgl@chat.ru *}
{**********************************************************************}
//это с шаблона WinMin Майка Краснова
// извращался как мог

program WinMin;

uses
Windows,
Messages;

const
AppName = "WinMin";

var Window : HWnd;
MenuHandle:HMENU;
hButton1, hEdit1 : HWnd;
hBr :HBRUSH;
HBM:HBITMAP;

function WindowProc (hWindow : HWnd; Message, WParam : DWord;
LParam : LongInt) : LongInt; stdcall;
begin
WindowProc := 0;

begin
case Message of
wm_Destroy : begin
PostQuitMessage (0);
Exit;
end;
WM_RButtonDown: MessageBeep (mb_OK);
// ??????? ?? ??????? ??????
wm_Command : if lParam = hButton1 then TrackPopupMenu(MenuHandle,TPM_LEFTBUTTON,10,10,0,window,nil);
WM_CTLCOLOREDIT:
begin
SetBkColor(WParam, $00FF00);
WindowProc := hBr;
exit;
end;

end; // case
WindowProc := DefWindowProc (hWindow, Message, WParam, LParam);
end;
end;

procedure Main;
Var

Message : TMsg;
WindowClass : TWndClass;
//OldWndProc:TWindowProc;

begin
hBm := LoadBitmap(0, Pointer(OBM_CLOSE));
hBr := CreatePatternBrush(hBm);
DeleteObject(hBm);
with WindowClass do begin
Style := cs_HRedraw or cs_VRedraw;
lpfnWndProc := @WindowProc;
cbClsExtra := 0;
cbWndExtra := 0;
hInstance := 0;//SysInit.hIstance;
hIcon := LoadIcon (0, idi_Application);
hCursor := LoadCursor (0, idc_Arrow);
hbrBackground := COLOR_INACTIVECAPTION;//COLOR_BTNFACE + 1;
lpszMenuName := "";
lpszClassName := AppName;
end;

If RegisterClass (WindowClass) = 0 then Halt (255);
Window := CreateWindow (AppName, "Win_Min", ws_OverlappedWindow,
100,100,300,300,
0, 0, HInstance, nil);
// ???????? ???? ??????
hButton1 := CreateWindow ("Button", "Button1",
WS_VISIBLE or WS_CHILD or BS_PUSHBUTTON or BS_TEXT,
5, 20, 65, 50, Window, 0, hInstance, nil);
// ???????? ???? ?????
hEdit1 := CreateWindow("EDIT", "Label1",
WS_VISIBLE or WS_CHILD or SS_CENTER or ES_MULTILINE or ES_AUTOVSCROLL or ES_AUTOHSCROLL or ES_WANTRETURN ,
80, 40, 70, 40, Window, 0, hInstance, nil);


MenuHandle:=CreatePopupMenu;
AppendMenu(MenuHandle,101,MF_ENABLED,"Hello, World");
DrawMenuBar(Window);

ShowWindow (Window, CmdShow);
UpdateWindow (Window);

// ????????????? ????? ?? ??????
SetFocus(hButton1);

while GetMessage (Message, 0, 0, 0) do begin
TranslateMessage (Message);
DispatchMessage (Message);
end;
DeleteObject(hBr);
end;

begin
Main;
end.


у меня на винХП оно работает. удачи:)



Страницы: 1 вся ветка

Текущий архив: 2003.06.26;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.026 c
14-84628
Карлсон
2003-06-09 19:39
2003.06.26
w2k английский.


6-84508
ole
2003-04-17 04:34
2003.06.26
Мультикаст


3-84043
Z_man7777
2003-06-02 06:25
2003.06.26
Вопрос по полю типа Float в InterBase6.x


1-84140
ngczn
2003-06-10 13:27
2003.06.26
маска ввода


3-83984
*pavel
2003-05-30 10:47
2003.06.26
Документация на Oracle (от А до Я)