Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Окно с кнопкой на 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'ом


Наверх

Титульная страница Поиск, карта сайта Написать письмо