WinAPI

0

Witam..

Szukam, kombinuje i nie mogę odpalić okna zmaksymalizowanego..
Kombinowałem z CreateWindow i ShowWindow na razie bez efektu.
Okno cały czas pojawia się domyślnie.
Probowałem z takimi wartościami: SW_SHOWMAXIMIZED, WS_MAXIMIZE itd.
Może robię jakiś prosty błąd ??

Pzdr

Zapomniałem o kodzie:

program Project1;

uses
  Windows, Messages;

var
  Wnd: TWndClass;
  Msg: TMsg;


function WndProc(Wnd: HWND; uMsg: UINT; wPar: WPARAM; lPar: LPARAM): LRESULT; stdcall;
begin
  Result:=0;
  case uMsg of   
    //WM_CREATE:  tu próbowałem ShowWindow z SW_MAXIMIZED i SW_SHOW
    WM_DESTROY: PostQuitMessage(0);
    else Result:=DefWindowProc(Wnd, uMsg, wPar, lPar);
  end;
end;


begin   
  with Wnd do begin
    lpfnWndProc:=@WndProc;     
    hInstance:=hInstance;       
    lpszClassName:='Form';  
    hbrBackground:=COLOR_WINDOW;
    hCursor:=LoadCursor(0, IDC_ARROW);
  end;
  RegisterClass(Wnd);           
  CreateWindow('Form', 'Tytuł', WS_VISIBLE+WS_MAXIMIZE+WS_TILEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, 0, 0, hInstance, NIL);
  //tu też z tym ShowWindow
  while GetMessage(msg, 0, 0, 0) do DispatchMessage(msg);
end.

Mieszam, kombinuje i nie chce działać... [???]
Proszę o jakieś wskazówki..

Pzdr

0

zamiast + daj "or" albo "and"

ps1. nie wiem czy te wartosci sa dobre, ale pokombinuj
ps2. slyszales o edycji postow?

0

W dziale artykuły jest fajny text o tworzeniu formy i są tam wypisane style.
Stosuj or zamiast plusa i nie powinno być żadnych problemów.
Przydałaby się może jeszcze funkcja TranslateMessage po funkcji DispatchMessage
w bloku begin... end;
Gdzieś tu na forum coś takiego widziałem.

0

Próbowałem z 'or' i 'and' dodałem także TranslateMessage(msg) i z wieloma innymi parametrami... [???] [glowa]

CreateWindow('MylstApp', 'FAQI', WS_VISIBLE or WS_MAXIMIZE or WS_TILEDWINDOW , CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, 0, 0, hInstance, NIL);
  while GetMessage(msg, 0, 0, 0) do begin
    TranslateMessage(msg);
    DispatchMessage(msg);
  end;

Już pomysłów nie mam, więc dlatego piszę na forum...
Pzdr

//Problem roziązany... Dzięki za porady [hurra]

0

Musisz wysłać wiadomoć do swojego głównego okna aby się zmaksymalizowało więc przy tworzeniu formy zapamiętaj jej uchwyt.
Czyli :
var
MojaForma:HWND;

MojaForma:=CreateWindow('MylstApp', 'FAQI', WS_VISIBLE or WS_MAXIMIZE or WS_TILEDWINDOW , CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, 0, 0, hInstance, nil);

A dalej w sekcji tworzenia wyślij SendMessage(MojaForma, ...
Niestety dalej nie pamiętam ...
powodzenia

0

a dlaczego nie:

procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.WindowState:=wsMaximized
end;

Rozwiązanie banalne... o to w ogóle chodzi?

0

a dlaczego nie:
procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.WindowState:=wsMaximized
end;

Rozwiązanie banalne... o to w ogóle chodzi?

Człowieku najpierw czytaj dokładnie ... przemyśl ... i pisz.
WinApi to nie VCL
Chyba nawet nie wiesz co to jest.

0

Jak już wyżej napisałem problem rozwiązany. [hurra]
Dzięki za wszystkie wskazówki:

WM_CREATE:
         ShowWindow(Wnd, SW_SHOWMAXIMIZED);

CreateWindow('MylstApp', 'FAQI', WS_VISIBLE or WS_TILEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, 0, 0, hInstance, NIL);

Pzdr

0

Człowieku najpierw czytaj dokładnie ... przemyśl ... i pisz.
WinApi to nie VCL
Chyba nawet nie wiesz co to jest.

Wiem co to WinAPI i VCL.
Co za różnica jeśli efekt ten sam?

0

Wiem co to WinAPI i VCL.
Co za różnica jeśli efekt ten sam?

Ha ha ha ...
Pytam się o Mercedesa a gość mówi mi o Maluchu i jeszcze na dodatek twierdzi , że nie ma różnicy bo efekt ten sam - jedzie.
Rozśmieszyłeś mnie z samego rana i tu masz dużego PLUSA +

1 użytkowników online, w tym zalogowanych: 0, gości: 1