Форум: "WinAPI";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
ВнизВопрос про едит Найти похожие ветки
← →
Василий Петрович (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 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.121 c