Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2003.04.10;
Скачать: [xml.tar.bz2];

Вниз

МАСТЕРА помогите!!! Как в EDIT поставить фон в виде рисунка!!!   Найти похожие ветки 

 
Songoku   (2003-02-05 15:58) [0]

Как в EDIT поставить фон в виде рисунка!!!
И спользуя функции API!!! Пожайлусто с примером!!!


 
Cobalt   (2003-02-05 16:06) [1]

А еще лучше прямо с рисунком (желательно порно;-)


 
Song   (2003-02-05 16:16) [2]

WM_ERASEBKGRND


 
Songoku   (2003-02-05 16:24) [3]

Song: Пришли пример .. я пробывал не работает!!!!


 
Игорь Шевченко   (2003-02-05 16:45) [4]

Song © (05.02.03 16:16)

В Edit ? :-))))


 
Song   (2003-02-05 16:56) [5]

А.. :), сорри

2Songoku (05.02.03 15:58)
А куда в едит вставлять фон?


 
Songoku   (2003-02-05 17:09) [6]

Игорь Шевченко : Да в Edite или Memo!!!!


 
Songoku   (2003-02-05 17:10) [7]

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


 
Cobalt   (2003-02-05 20:15) [8]

Написать свой компонент, потомок от TEdit, и перекрыть в нем обработчик WM_ERASEBKGRND?
2 Songoku
Кстати, приведи примерчик того, что ты пытался сделать? и укажи, на какой строке у тебя вылазит ошибка.


 
DVM   (2003-02-05 20:18) [9]


> Songoku

Возьмите на www.torry.net какой-нибудь компонент с исходниками и посмотрите. Там таких полно.
Есть еще CoolMemo, например.


 
Songoku   (2003-02-05 23:22) [10]

......
dMemo:=Pointer(GetWindowLong(hEdit,GWL_WNDPROC));
SetWindowLong(hEdit,GWL_WNDPROC,Longint(@MemoProc));
...

function MemoProc(hWnd,Msg,wParam,lParam:Longint):Longint; stdcall;
var
t: TPaintStruct;
DC:HDC;
begin
case
Msg of
WM_PAINT: begin SetWindowBkgBitmap(hWnd, LoadBitmapFromFile("C:\bgr.bmp"));

Result:=1;

end;

WM_ERASEBKGND: begin
DC:=BeginPaint(hWnd,t);
SetBkMode(DC,TRANSPARENT);

SetWindowBkgBitmap(hWnd, LoadBitmapFromFile("C:\bgr.bmp"));
EndPaint(hWnd,t);
Result:=1;
end else Result:=CallWindowProc</CODE>(dMemo,hWnd,Msg,wParam,lParam);
end;

end;


 
i-C3H7OH   (2003-02-06 12:12) [11]

>Songoku

а BitBlt сделать?

LoadBitmapFromFile("C:\bgr.bmp") надо сделать один раз в начале выполнения программы,
а у тебя создаются битмапы при каждой перерисовке

кстати, что это за ф-ция SetWindowBkgBitmap(hWnd, HBITMAP)?
такую даже Google не находит



 
Song   (2003-02-06 12:27) [12]

2Songoku (05.02.03 23:22)
Наверно долго теги вставлял? :)


 
Songoku   (2003-02-06 15:51) [13]

i-C3H7OH: Это мая функция.
procedure SetWindowBkgBitmap(Window:HWND;Bitmap:HBitmap);
var
rc:Trect;
begin
Windows.GetClientRect(Window, rc);
FillRect(GetDC(Window), rc, CreatePatternBrush(Bitmap));

end;

function LoadBitmapFromFile(Path:String):HBitmap;
begin
Result:=LoadImage(0,Pchar(Path),IMAGE_BITMAP,0,0,LR_LOADFROMFILE or LR_CREATEDIBSECTION or LR_DEFAULTSIZE);
end;


 
Songoku   (2003-02-06 15:55) [14]

Скиньте мне кто исходник примера на мыло: Songoku@tut.by


 
gsu   (2003-02-06 15:56) [15]

твая, твая (-:|~


 
i-C3H7OH   (2003-02-06 19:34) [16]

если брашем надо заполнить, то тут даже проще

hBr := CreatePatternBrush(Bitmap);
делаем 1 раз, создаем объест , который потом надо бы уничтожить
DeleteObject(..)

сообщение. как я понял для того чтоб задать заливку, цвет текста
используется WM_CTLCOLOREDIT. просто в качестве Resultа надо толкнуть hBr.


 
Songoku   (2003-02-07 01:06) [17]

i-C3H7OH : Yes работает только это делается немного по другому!!!

.....
procedure ColorEdit( var M:TWMCTLCOLOREDIT); message WM_CTLCOLOREDIT;.....
procedure TForm1.ColorEdit( var M:TWMCTLCOLOREDIT);
begin
SetTextColor(m.ChildDC,RGB(255,255,0));
SetBkMode(m.ChildDC,TRANSPARENT);

m.Result:=CreatePatternBrush(LoadBitmapFromFile("C:\bgr.bmp"));
end;


 
Evgeny   (2003-02-07 05:47) [18]

>Songoku (07.02.03 01:06)
А все-таки Вы, уважаемый, сделали именно так как предложил i-C3H7OH.


 
Songoku   (2003-02-07 11:25) [19]

Evgeny : Я знаю но он имел в виду что там про "DeleteObject(..)
"!!!


 
i-C3H7OH   (2003-02-07 11:49) [20]

объявляем глобальную переменную var hBr:HBRUSH;
(если создаешь класс, тогда обьявляем ее в приват-секции, как любой дескриптор)

в начале программы (или в обработчике WM_CREATE) создаем браш
hBr := CreatePatternBrush(Bitmap);
в конце уничтожаем DeleteObject(hBr) все

с битмапом тоже самое.
LoadBitmapFromFile("C:\bgr.bmp")); тоже создает битмап
уничтожается аналогично DeleteObject(HBITMAP)
понятно? дерзай!







 
DVM   (2003-02-07 13:07) [21]

вот я когда то делал, правда для Мемо

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;

type
TForm1 = class(TForm)
Image1: TImage;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);


private
{ Private declarations }
public
{ Public declarations }
end;


TMemo1=class(TMemo)
private
public
protected
Procedure WMEraseBkgnd(var Message: TWMEraseBkgnd); message WM_ERASEBKGND;
Procedure WMPaint(var Message: TWMPaint); message WM_Paint;
procedure WMMouseMove(var Message: TWMMouseMove); message WM_MouseMove;
procedure WMKeyDown(var Message: TWMKeyDown); message WM_KEYDOWN;
procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
procedure DoPaint;dynamic;
procedure CHANGE; override;
end;

var
Form1: TForm1;
Memo1:TMemo1;

implementation

{$R *.dfm}

procedure TMemo1.DoPaint;
var
MyDC: HDC;
TempDC: HDC;
OldBmp, TempBmp: HBITMAP;
begin
begin
HideCaret(Handle);
MyDC := GetDC(Handle);
try
TempDC := CreateCompatibleDC(MyDC);
try
TempBmp := CreateCompatibleBitmap(MyDC, Succ(ClientWidth), Succ(ClientHeight));
try
OldBmp := SelectObject(TempDC, TempBmp);
PaintTo(TempDC, -2, -2);
BitBlt(MyDC, 0, 0, ClientWidth, ClientHeight, TempDC, 0, 0, SRCCOPY);
SelectObject(TempDC, OldBmp);
finally
DeleteObject(TempBmp);
end;
finally
DeleteDC(TempDC);
end;
finally
ReleaseDC(Handle, MyDC);
end;
ShowCaret(Handle);
end;
end;

procedure TMemo1.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
dopaint;
end;

procedure TMemo1.MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
dopaint;
end;

procedure TMemo1.WMMouseMove(var Message:TWMMouseMove);
begin
inherited;
dopaint;
end;


procedure TMemo1.WMKeyDown(var Message: TWMKeyDown);
begin
inherited;
dopaint;
end;

procedure TMemo1.CHANGE;
begin
dopaint;
end;

procedure TMemo1.WMEraseBkgnd(var Message: TWMEraseBkgnd);
begin
//SetBkColor(Message.DC, Transparent);
SetBkMode(message.dc, Transparent);
inherited;
memo1.Brush.Bitmap:=form1.image1.Picture.Bitmap;

//bitblt(message.DC,0,0,memo1.ClientWidth,memo1.ClientHeight,form1.Image1.Picture.Bitmap.canvas.Handle,0,0, SRCCOPY);
end;

procedure TMemo1.WMPaint(var Message: TWMPaint);

begin

inherited;

end;






procedure TForm1.Button1Click(Sender: TObject);
begin
memo1:=TMemo1.Create(form1);
memo1.Parent:=form1;
memo1.Text:="fasdasdasd";
memo1.Font.Color:=clYellow;
memo1.Font.Size:=20;
memo1.Left:=10;
memo1.Top:=10;
memo1.Width:=200;
memo1.Height:=500;
//SetBkMode(getdc(memo1.Brush.Handle), Transparent);


//memo1.Enabled:=false;
end;



procedure TForm1.Button2Click(Sender: TObject);
begin
memo1.Text:="sdilfjdsofjofaofa";


end;



end.


 
Songoku   (2003-02-09 18:51) [22]

DVM : Много не дороботок: маргает кагда пишешь и кагда прокрутываешь!!!!


 
Безымянный среднего рода   (2003-02-10 07:17) [23]

> Songoku (09.02.03 18:51) дык.... возьми и доработай....кто мешает ?


 
Songoku   (2003-02-10 16:57) [24]

Удалено модератором
Примечание: Материться дома будешь



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

Форум: "WinAPI";
Текущий архив: 2003.04.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.011 c
7-30626
xfrost
2003-02-16 11:45
2003.04.10
Ждущий режим


1-30404
Perez
2003-03-30 18:22
2003.04.10
строки


8-30475
Макс1
2003-01-03 15:01
2003.04.10
Распознование изображений


3-30223
off
2003-03-21 16:02
2003.04.10
Не могу разобраться с Filter в IBQuery и IBDataSet.


1-30362
Борис_Ш
2003-03-31 14:08
2003.04.10
После вызова формы, в которой Drag&Drop, не хватает памяти





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский