![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Окно с кнопкой на WinAPI [D7, WinXP]
DelphiSchueler © (2006-03-22 13:01:00)Проблема состоит в том, что я хочу создать форму с кнопкой на WIN API, ну вот только кнопку у меня можно за рамки формы вытягивать и Title Bar у неё есть, какие Флаги для dwStyle надо в CretaeWindow вставить, что бы она на нормальную кнопку похожа была?
Зарание благодарен
З.Ы. Вот исходник если что:
program SmallPrg;
{$APPTYPE CONSOLE}
uses
Windows,
Messages,
Dialogs;
const WinName='MainWClass';
function WinProc(Window: HWND;AMessage,WParam,LParam: longint): longint; stdcall; export;
begin
case AMessage of
WM_DESTROY: begin
PostQuitMessage(0);
Exit;
end;
wm_LButtonDown: ShowMessage('Sie haben linke MausTaste gedruckt');
else
Result:= DefWindowProc(Window,AMessage,WParam,LParam);
end;
end;
function WClass: Boolean;
var wnd: TWndClass;
begin
wnd.style:= CS_HREDRAW and CS_VREDRAW;
wnd.lpfnWndProc:= @WinProc;;
wnd.cbClsExtra:= 0;
wnd.cbWndExtra:= 0;
wnd.hInstance:= hInstance;
wnd.hIcon:= LoadIcon(0, IDI_APPLICATION);
wnd.hCursor:= LoadCursor(0, IDC_ARROW);
wnd.hbrBackground:= COLOR_BACKGROUND;
wnd.lpszMenuName:= nil;
wnd.lpszClassName:= PChar(WinName);
result:= RegisterClass(wnd)<>0;
end;
function Start: HWND;
begin
Result:= CreateWindow(PChar(WinName),'SmallPrg',WS_OVERLAPPEDWINDOW and (not WS_SIZEBOX),200,400,200,200,0,0,hInstance,nil);
end;
var Win, Button: HWND;
AMessage: msg;
begin
writeln('Das Programm wurde erfolgreich ausgefuhrt...');
WClass;
Win := Start;
ShowWindow(Win, SW_SHOWNORMAL);
UpdateWindow(Win);
////////////////////////////////////////////////////////////////////////////////
Button:= CreateWindow('BUTTON','Кнопка', WS_CHILD and BS_PUSHLIKE,250,450,10,90,Win,0,hInstance,nil);
ShowWindow(Button, CmdShow);
UpdateWindow(Button);
////////////////////////////////////////////////////////////////////////////////
while (GetMessage(AMessage,0,0,0)) do
begin
TranslateMessage(AMessage);
DispatchMessage(AMessage);
end;
Halt(AMessage.wParam);
end.
DelphiSchueler (2006-03-22 16:52:00) [1]Пасибо большое!!!!!!!!!!
grisme (2006-03-22 15:12:00) [2]AND-это логическое УМНОЖЕНИЕ, а не сложение...)))
clickmaker (2006-03-22 13:26:00) [3]BS_PUSHBUTTON Or WS_CHILD
не надо стили объединять and'ом