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

Вниз

Не могу обработать нажатие по битмапине   Найти похожие ветки 

 
Василий Петрович   (2003-04-12 22:48) [0]

Я создаю битпам на форме:
bigbit:=CreateWindow("static",nil,SS_BITMAP or WS_CHILD or WS_VISIBLE,0,0,240,230,win,101,50,nil);
SendMessage(bigbit,STM_SETIMAGE,IMAGE_BITMAP,LoadBitmap(GetModuleHandle(nil),MAKEINTRESOURCE(101)));
Создается.
Потом пишу:
50: DestroyWindow(win);
И ничего!
Если таким же макаром создавить кнопку, то все получается.... а мне надо именно битмап!
Неужели нельзя так сделать?!


 
DVM   (2003-04-12 22:58) [1]


> Потом пишу:
> 50: DestroyWindow(win);
Ну удаление окна на котором битмап
> И ничего!
> Если таким же макаром создавить кнопку, то все получается....
> а мне надо именно битмап!
> Неужели нельзя так сделать?!

Что собственно надо сделать? я ничего не понял.


 
DVM   (2003-04-12 23:17) [2]

WM_L(R)BTNDOWN + получение координат мыши из LParam сообщения и сравнение их с координатами битмапа.


 
Songoku   (2003-04-13 00:26) [3]

Ты хочешь создать что-то типо SpeedButton1 с ипользованием FLAT??? еслт да то я попробую это сдлать кагда сделаю отпрвлю!!!


 
Songoku   (2003-04-13 12:46) [4]

Вот что у меня получилось!!!

var
dButton: Pointer;

function Default_Button(hWnd,Msg,wParam,lParam:Longint):Longint; stdcall;
var
R:TRect;
begin
Result:=CallWindowProc(dButton,hWnd,Msg,wParam,lParam); case Msg of WM_PAINT: begin
GetClientRect(hWnd,R);
FillRect(GetDC(hWnd), R, CreateSolidBrush(GetSysColor(COLOR_BTNFACE)));
DrawEdge(GetDC(hWnd), R,BDR_RAISEDINNER , BF_RECT);
case wParam of
1: DrawEdge(GetDC(hWnd), R,BDR_RAISEDINNER , BF_RECT);
2: DrawEdge(GetDC(hWnd), R,BDR_SUNKENINNER , BF_RECT);
end;
end;

WM_LBUTTONDOWN: SendMessage(hWnd,WM_PAINT,2,0);

WM_LBUTTONUP: SendMessage(hWnd,WM_PAINT,1,0);
end;
end;


.....
CreateWindow("Button", nil ,WS_CHILD or WS_VISIBLE,20,27,40,58,hwnd,91,0,nil);
dButton:=Pointer(GetWindowLong(GetDlgItem(hwnd,91),GWL_WNDPROC));
SetWindowLong(GetDlgItem(hwnd,91),GWL_WNDPROC,Longint(@Default_Button));
.....


 
Василий Петрович   (2003-04-13 21:15) [5]

Ты прав! Именно этого я добиваюсь!
Щас попробую что ты написал, заранее спасибы


 
х   (2003-04-14 15:57) [6]

2 Songoku © (13.04.03 12:46)

все хорошо, тока GetDC(hWnd) вызываем только 1 раз, а потом незабываем про ReleaseDC



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

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

Наверх





Память: 0.45 MB
Время: 0.006 c
1-34826
blackgrin
2003-06-02 23:07
2003.06.12
Уменьшить использование памяти...


9-34662
NailMan
2002-07-12 04:40
2003.06.12
Реинициализация Direct3D внутри программы


11-34768
Alexander
2002-09-20 09:13
2003.06.12
А как можно в KOL одну из строк ListBox выделить жирным шрифтом ?


14-35019
sizmrebi
2003-05-26 14:26
2003.06.12
Reports in Delphi 7


3-34731
AGAMEMNUM
2003-05-20 10:23
2003.06.12
Access





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