Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.029 c
14-84722
Kladov
2003-02-14 22:59
2003.06.26
---|Ветка была без названия|---


11-84055
SPeller
2002-10-10 14:37
2003.06.26
Динамическое создание/удаление контролов.


7-84788
Term
2003-04-16 15:40
2003.06.26
как можно проверить установлен оффис на компе или нет


1-84202
Mortal
2003-06-12 13:33
2003.06.26
TListView


1-84133
Frist_May
2003-06-11 09:14
2003.06.26
ComboBox + F4





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский