Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Okienko
Usercontrol
mr. Tom



Typ: neutral
Postów: 191
Zarejestrowany: Oct 2003
Okienko

Jak zrobić takie okno jakie można wywołać w api-guide - menu Options->Api-Guide Bar
Chodzi o to, żeby okienko było po prawej stronie ekranu, żeby było zawsze na wierzchu i żeby inne okienka zachowywały się tak, jakby to moje-okienko było granicą ekranu.

03-10-2004 19:23
Pokaż profil Usercontrol  Wyślij email do Usercontrol   Odwiedź stronę Usercontrol       1518548
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

Okienko po prawej: poprostu je tam ustawiasz.
Zawsze na wierzchu: w WinAPI jest funkcja SetWindowPos. Używając jej i jako parametr podając hWndInsertAfter na HWND_TOPMOST robisz, by było zawsze na wierzchu (opisu funkcji nie daje, bo pewnie masz ją w ApiGuide)

Zainstalowałem sobie API-Guide i się przyjrzałem.
Wszystko, co udalo mi sie zaobserwować, to fakt, że aplikacja zmienia poprostu rozmiar pulpitu.


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

03-10-2004 22:23
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
Usercontrol
mr. Tom



Typ: neutral
Postów: 191
Zarejestrowany: Oct 2003

Chyba nie zrozumiales o co mi chodzi. Chodzi mi wlasnie o to, zeby zmienic rozmiar pulpitu, a nie przestawiac okienko na bok, bo jezeli bym tak zrobil, moje okienko przykrywalo by inne okienka, a nie to chcialem uzyskac. Na psc takze szukalem, ale nic nie znlazlem

04-10-2004 11:06
Pokaż profil Usercontrol  Wyślij email do Usercontrol   Odwiedź stronę Usercontrol       1518548
m-a-x



Typ: neutral
Postów: 366
Zarejestrowany: Jan 2003

No nie dziwie sie że nie znalazles nic na psc bo to okienko nie zmienia rozmaru pulpitu tylko zmienia rozmiary otwartych okien. Zauważ że jak klikniesz w jakimś oknie na przycisk maksymalizacji to okno powiększy się normalnie na pełny ekran.

Zmieniać rozmiary okien można za pomocą api


_____________________________________________

Problemem zazwyczaj nie jest brak osób znających odpowiedź a zadanie właściwego pytania!

04-10-2004 19:17
Pokaż profil m-a-x  Wyślij email do m-a-x   
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

Usercontrol: a co ja napisałem w ostatnim zdaniu? Cytuję: "aplikacja zmienia poprostu rozmiar pulpitu".

m-a-x: owszem, zmienia. Sprawdź sobie. Natomiast napewno nie zmienia rozmiaru każdego okna - to już też sprawdziłem - okna mają zmieniany rozmiar przez ich własny program, nie przez Api-Guide'a.


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

04-10-2004 20:43
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
m-a-x



Typ: neutral
Postów: 366
Zarejestrowany: Jan 2003

No ok, nie wiem czemu jak wczesniej probowałem zmaksymalizowac jakies okno (innej aplikacji) to mi sie noirmalnie powiększyło i weszło za ten panel. No ale nie ważne.

Sam pulpit przecież się nie zmiejsza! Czy np programista tworzący api guide nie mogł dodac procedury przechwytującej zdarzenia a własciwie zdażenie maksymalizacji z aktywnego okna a nastepnie zmniejszac rozmiar tego okna tak aby nie właził za panel?

Dowodem na to że to najprawdopodobniej w ten sposob jest zrobione (zmiana rozmiarów okna) może być fakt że wysokość okna gdy ApiGuideBar jest włączony jest nie właściwa - tzn zachodzi lekko na pasek zadań windowsowski. Przynajmniej u mnie tak jest (WinMe). Wiec wydaje mi się że to właśnie ApiGuide zmienia rozmiar zmaksymalizowanych okien! (może się myle)

Tyle że w sumie nie wiem czy dało by się zmienić rozmiar okna zmaksymalizowanego. Sprawdzać tego teraz mi się zabardzo nie chce (jest już późno) ale jak komuś zależy to moze sobie potestowac

[Post edytowany dnia 05-10-2004 01:55 przez m-a-x]


_____________________________________________

Problemem zazwyczaj nie jest brak osób znających odpowiedź a zadanie właściwego pytania!

05-10-2004 01:52
Pokaż profil m-a-x  Wyślij email do m-a-x   
Usercontrol
mr. Tom



Typ: neutral
Postów: 191
Zarejestrowany: Oct 2003

marcin_an:
z tą zmianą rozmiaru pulpitu być może masz rację, ale ja ją mogę podważyć tym, że jeżeli pulpit to jest pojemnik wszystkich okien, i jak się ten pulpit zmniejszy i okienka zmieniają rozmiar, to w takim razie co jest pojemnikiem mojego okna?

05-10-2004 06:59
Pokaż profil Usercontrol  Wyślij email do Usercontrol   Odwiedź stronę Usercontrol       1518548
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

Niezupełnie. Ty mówisz o oknie Desktop (rzeczywiscie po przetłumaczeniu wychodzi "Pulpit", a ja mówię o pulpicie w sensie uzytkowym - tym, w którym jest SysListView (ten wyświetlający ikonki na pulpicie), tepata i inne. On nie jest kontenerem. Najwyższe okno Desktop nadal zajmuje cały ekran, a twój program bez przeszkód może zostać umieszczony gdziekolwiek. natomiast sądzę, że programy podczas maksymalizacji pobierają obszar jaki mogą zajmować właśnie pobierają te wymiary z okna, o którym mówię.

Oto organizacja okien dla Win98SE wraz z interesującymi nas rozmiarami (w rozdz. 1024x768)

#32769 (Desktop) [1024x768]
 + Progman "Program manager" [1024x768]
    + SHELLDLL_DefView [1024x740]
      + SysListView32 [1024x740]
          ...

Podczas uruchomienia paska API-Guide szerokość SHELLDLL_DefView jest zmniejszana o ileśtam pikseli (akurat tyle, ile wynosi szerokośc paska API-Guide). Zauważ też, że wysokość tego okna wynosi 740 - to dlatego, że jest pasek zadań. Jeśli go nie ma, to zajmie całe 768.
Zatem to okno napewno jest zmieniane, sprawdzałem to. Napewno też jest jednocześnie zmniejszane podrzędne okno SysListView32.
Niewiadomą pozostaje kwestia tego, czy zmniejszenie SHELLDLL_DefView pociaga za sobą zmianę rozmiaru maksymalizowanych okien. Poprostu trzeba to sprawdzić, co zaraz zrobię i zdam raport . Ale podejrzewam, że mam rację, albo autorom API-Guide należy się porządny ochrzan za użycie niepotrzebnego (a w pewnych sytuacjach szkodliwego) rozwiązania - jeśli zmniejszanie SHELLDLL_DefView nie ma na celu zmiany makymalizowanych okien, to jest działaniem bezsensownym. Przystępuję do pisania kodu.

A do pytań m-a-x'a:
U mnie (W98SE) też czasami okna zachodzą na pasek zadań - to prawdopodobnie jakiś bug w Windowsie.

[Post edytowany dnia 05-10-2004 16:22 przez marcin_an]


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

05-10-2004 16:12
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

Sprawdziłem i ogłaszam wyniki:
Są chętni do wykonania porządnego ochrzanu?

No to czekam na dalsze propozycje, jak to zrobić. Zmiana SHELLDLL_DefView zmienia tylko rozmiar pulpitu (tego z ikonami). Natomiast nie sądzę, by zmieniali rozmiar każdego maksymalizowanego okna - nie opłaca się.


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

05-10-2004 17:14
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
Wszystkich odpowiedzi: 8 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1