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

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

Как создать полноэкранное окно без заголовка? [D6, WinXP]


cyborg ©   (2002-10-29 20:43:00) 

Ох, никак не получается, на данный момент вот такое у меня:
WndClass.style := CS_BYTEALIGNCLIENT or CS_NOCLOSE;
WndClass.lpfnWndProc := @WindowProc;
WndClass.cbClsExtra := 0;
WndClass.cbWndExtra := 0;
WndClass.hInstance := hInstance;
WndClass.hIcon := LoadIcon ( 0,IconName);
WndClass.hCursor := LoadCursor(0,idc_arrow);
WndClass.hbrBackground :=1;// GetStockObject(NULL_BRUSH);
WndClass.lpszMenuName := nil;
WndClass.lpszClassName := ClassName;
if not Boolean(Windows.RegisterClass(WndClass)) then Halt(1);
Result:=CreateWindowEx(
WS_EX_APPWINDOW or WS_EX_DLGMODALFRAME,
ClassName,
WindowName,
WS_VISIBLE or WS_DLGFRAME or WS_MAXIMIZE,
0,
0,
ScreenWidth,
ScreenHeight,
0,
0,
hInstance,
Nil);
WindowClassName := ClassName;
ShowWindow(Result,SW_SHOWMAXIMIZED);


Всё работает, но никак ненайду где и что нужно сделать чтобы просто во весь экран было и без заголовка и бордюров. Эти WS_ и CS_ всякие перепробовал, подскажите пожалуйста!!! Нужно просто сделать полноэкранное окно, чтобы не перемещалось и бордюров небыло.


Qpwoe!   (2002-11-03 23:13:00) [1]

Left:=0;
Top:=0;
Height:=Screen.Height;
Width:=Screen.Width;
borderstyle:=bsnone;
formstyle:=fsstayontop;




cyborg   (2002-10-30 12:09:00) [2]

WndClass.hbrBackground :=1;//GetStockObject(NULL_BRUSH);
Если без заполнения, то в комментарии код


cyborg   (2002-10-30 12:07:00) [3]

сделал, кому интересно смотрите:


VAR
Handle : HWnd;
WndClass: TWndClass;
WindowClassName : PChar;
Mesg : TMsg;

Function WindowProc( Wnd:hWnd; Msg:Integer; wParam:WParam; lParam:lParam):LResult;stdcall;
begin
case msg of
wm_destroy :
Begin
postquitmessage(0); Result:=0; exit;
End;

WM_CHAR :
Begin
case wParam of
27 :
Begin
postquitmessage(0); Result:=0; exit;
End;
end;//case wParam
End;
else Result:=DefWindowProc(Wnd, Msg, wParam, lParam);
end;
end;

Function CreateWindow(Const ClassName,WindowName : PChar; Const IconName: PChar; Const ScreenWidth,ScreenHeight : Integer) : HWnd;
Begin
WndClass.style := CS_OWNDC or CS_CLASSDC or CS_BYTEALIGNCLIENT or CS_NOCLOSE;
WndClass.lpfnWndProc := @WindowProc;
WndClass.cbClsExtra := 0;
WndClass.cbWndExtra := 0;
WndClass.hInstance := hInstance;
WndClass.hIcon := LoadIcon ( 0,IconName);
WndClass.hCursor := LoadCursor(0,idc_arrow);
WndClass.hbrBackground :=1;GetStockObject(NULL_BRUSH);
WndClass.lpszMenuName := nil;
WndClass.lpszClassName := ClassName;
if not Boolean(Windows.RegisterClass(WndClass)) then Halt(1);
Result:=CreateWindowEx(
WS_EX_TOPMOST,
ClassName,
WindowName,
WS_POPUP,
0,
0,
ScreenWidth,
ScreenHeight,
0,
0,
hInstance,
Nil);
WindowClassName := ClassName;
ShowWindow(Result,SW_SHOWMAXIMIZED);
End;


BEGIN
Handle:=CreateWindow("Название класса окна","Название окна", Nil, GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN));
While GetMessage(Mesg,0,0,0) do
begin
TranslateMessage(Mesg);
DispatchMessage(Mesg);
end;
if Handle<>0 then CloseWindow(Handle);
Windows.UnRegisterClass(WindowClassName, hInstance);
END;


вроде ничего не забыл


cyborg   (2002-10-30 11:20:00) [4]

нет, не помогает :(
Неужели никто не создавал окно на API?


Subfire   (2002-10-30 11:06:00) [5]

WS_EX_OVERLAPPEDWINDOW не поможет?


cyborg   (2002-10-30 10:36:00) [6]

SPeller ©, а это что такое?

CreateWindowEx(
WS_EX_APPWINDOW or WS_EX_DLGMODALFRAME,
ClassName,
WindowName,
WS_VISIBLE or WS_DLGFRAME or WS_MAXIMIZE,
0,
0,
ScreenWidth,
ScreenHeight,

0,
0,
hInstance,
Nil);
WindowClassName := ClassName;
ShowWindow(Result,SW_SHOWMAXIMIZED);

Знаешь такую вещь: "Не уверен, не обгоняй!"?


SPeller   (2002-10-30 01:30:00) [7]

И ещё добавь HWND_TOPMOST, чтобы ничего не вылезло поверх твоего окна.


SPeller   (2002-10-30 01:29:00) [8]

Left:=0; Top:=0; Height:=Screen.Height; Width:=Screen.Width;

Вот тебе и весь экран, ёлки-палки :-)))


cyborg   (2002-10-29 22:15:00) [9]

Люди, человеки! Очень нужно, подайте пожалуйста на блюдечке. Хотябы на худой конец ключевое слово дайте, в справке поискать.


Наверх

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