eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › [WinAPI] Okno dialogowe jako główne
Ilość wypowiedzi w tym wątku: 28

  • 1. Data: 2018-03-15 20:30:41
    Temat: [WinAPI] Okno dialogowe jako główne
    Od: DMR <m...@g...com>

    No więc... Są zasadniczo dwie opcje: odpalenie z WinMain jako modalne, albo
    niemodalne.

    Pytanie pierwsze: Czy jest w przypadku okna głównego jakaś różnica, poza tym, że przy
    modalnym odpadają dodatkowe aktywne dialogi?


    Druga sprawa:
    O ile tutaj oba dialogi wywołane są w sposób analogiczny:
    http://forums.codeguru.com/showthread.php?306103-how
    -to-create-a-win32-dialog-based-application

    to częściej trafić można tego typu konstrukcje:

    http://eduinf.waw.pl/inf/prg/002_winasm/0011.php
    https://www-user.tu-chemnitz.de/~heha/petzold/ch11b.
    htm
    (niepokoi mnie brak DestroyWindow...)

    Po co tutaj RegisterClass?
    Co to faktycznie daje, jeśli program ma wyświetlić tylko jedno takie okno?

    Jedyne, co mi przychodzi do głowy, to możliwość wyszukania uruchomionej wcześniej
    instancji po klasie okna.
    Ale w takim wypadku, powinno się zarejestrować klasę dialogu niezależnie od typu
    wywołania?

    Czy coś jeszcze?
    Jakaś mała śrubka, której brak da o sobie znać w najmniej oczekiwanym momencie? ;-)

    Szacun dla osobników, którzy ten majdan ogarniają. :-)


  • 2. Data: 2018-03-15 23:03:27
    Temat: Re: [WinAPI] Okno dialogowe jako główne
    Od: "M.M." <m...@g...com>

    On Thursday, March 15, 2018 at 8:30:43 PM UTC+1, DMR wrote:
    > No więc... Są zasadniczo dwie opcje: odpalenie z WinMain jako modalne, albo
    niemodalne.
    >
    > Pytanie pierwsze: Czy jest w przypadku okna głównego jakaś różnica, poza tym, że
    przy modalnym odpadają dodatkowe aktywne dialogi?
    >
    >
    > Druga sprawa:
    > O ile tutaj oba dialogi wywołane są w sposób analogiczny:
    > http://forums.codeguru.com/showthread.php?306103-how
    -to-create-a-win32-dialog-based-application
    >
    > to częściej trafić można tego typu konstrukcje:
    >
    > http://eduinf.waw.pl/inf/prg/002_winasm/0011.php
    > https://www-user.tu-chemnitz.de/~heha/petzold/ch11b.
    htm
    > (niepokoi mnie brak DestroyWindow...)
    >
    > Po co tutaj RegisterClass?
    > Co to faktycznie daje, jeśli program ma wyświetlić tylko jedno takie okno?
    >
    > Jedyne, co mi przychodzi do głowy, to możliwość wyszukania uruchomionej wcześniej
    instancji po klasie okna.
    > Ale w takim wypadku, powinno się zarejestrować klasę dialogu niezależnie od typu
    wywołania?
    >
    > Czy coś jeszcze?
    > Jakaś mała śrubka, której brak da o sobie znać w najmniej oczekiwanym momencie? ;-)
    >
    > Szacun dla osobników, którzy ten majdan ogarniają. :-)

    Ja to powoli już zapominam. Dlaczego nadal programujesz w WinAPI?
    Pozdrawiam


  • 3. Data: 2018-03-16 00:19:55
    Temat: Re: [WinAPI] Okno dialogowe jako główne
    Od: DMR <m...@g...com>

    > Dlaczego nadal programujesz w WinAPI?


    Bo lubię. :-)


    A tak na serio - zdeterminowany jestem platformą i narzędziem.
    Muszę przerobić jedno starocie działające na ARM, napisane w C (Pelles), więc
    wielkiego ruchu nie mam.
    Temat mam w zasadzie ogarnięty, ale męczą mnie właśnie takie niuanse.

    Zresztą ja naprawdę to lubię.
    Tylko nie zawsze umiem... ;-)


  • 4. Data: 2018-03-16 14:21:51
    Temat: Re: [WinAPI] Okno dialogowe jako główne
    Od: "M.M." <m...@g...com>

    On Friday, March 16, 2018 at 12:19:57 AM UTC+1, DMR wrote:
    > > Dlaczego nadal programujesz w WinAPI?
    >
    >
    > Bo lubię. :-)

    Z tym co kto lubi, ciężko dyskutować, a nawet ciężko zadawać pytania :)

    >
    >
    > A tak na serio - zdeterminowany jestem platformą i narzędziem.
    > Muszę przerobić jedno starocie działające na ARM, napisane w C (Pelles), więc
    wielkiego ruchu nie mam.
    > Temat mam w zasadzie ogarnięty, ale męczą mnie właśnie takie niuanse.
    >
    > Zresztą ja naprawdę to lubię.
    > Tylko nie zawsze umiem... ;-)

    A nuż... zadam pytanie, z jakich powodów ściśle użytkowych zastanawiasz się
    nad modalnością głównego okienka dialogowego?

    Pozdrawiam


  • 5. Data: 2018-03-16 17:12:23
    Temat: Re: [WinAPI] Okno dialogowe jako główne
    Od: DMR <m...@g...com>

    > Z tym co kto lubi, ciężko dyskutować, a nawet ciężko zadawać pytania :)


    E... Ja tam ogólnie jestem otwarty. :-)
    Ale otwarty, to znaczy otwarty na RÓŻNE opcje, a nie zamknięty na ich zestawy dobrane
    według doraźnego klucza... ;-)



    > A nuż... zadam pytanie, z jakich powodów ściśle użytkowych zastanawiasz się
    > nad modalnością głównego okienka dialogowego?


    Użytkowych? Żadnych. :-)
    Aplikacja ma wyświetlać jedno okno i może ze dwa-trzy inne, otwierane tylko do
    wprowadzania konkretnych zestawów danych, a ponieważ ma funkcjonować w systemie
    Windows Mobile, gdzie i tak zasadniczo widać tylko jedno okno, to mi to tito, czy to
    będzie okno modal, czy modeless... Chodzi mi tylko o aspekt techniczno-metodyczny.

    Ja wiem, że to muzeum, ale bebechy aplikacji są w C i działają, więc wolałbym tego
    nie zmieniać, a ponadto handheldy nie są tanimi zabawkami i propozycja wymiany całej
    stajni hardware'u na nowszy raczej nie spotkałaby się z entuzjazmem... ;-)

    Oczywiście, zawsze można zassać jakiś SharpDevelop (VS w podstawowych wersjach
    platformy Mobile zdaje się nie obsługuje), a na komputerkach zaszczepić Compact
    Framework i problem by zniknął, ale zniknąłby tylko pozornie - bo powyższe pytania i
    tak pozostałyby bez odpowiedzi... :-)


  • 6. Data: 2018-03-19 16:50:35
    Temat: Re: [WinAPI] Okno dialogowe jako główne
    Od: slawek <f...@f...com>

    On Thu, 15 Mar 2018 12:30:41 -0700 (PDT), DMR <m...@g...com>
    wrote:
    > Po co tutaj RegisterClass?

    Najpierw tworzysz klasę, potem okno mające (zarejestrowaną) klasę.
    Teoretycznie można użyć już istniejącej, ale w praktyce nie ma to
    sensu, bo funkcja obsługi okna jest podpięta pod klasę. A zwykle
    chcesz mieć własną.

    > Czy coś jeszcze?

    Jeżeli Main Window jest przypadkiem dialogiem to przyda się
    IsDialogMessage i nieco inna pompa komunikatów - szczegóły zna Google
    i Petzold.

    Myk w tym że Visual Studio może nie dać rady skompilować: nowe wersje
    nie obsługują starych Windows (XP jeszcze chyba). Na szczęście GCC
    daje radę.


  • 7. Data: 2018-03-20 12:28:25
    Temat: Re: [WinAPI] Okno dialogowe jako główne
    Od: DMR <m...@g...com>

    > Najpierw tworzysz klasę, potem okno mające (zarejestrowaną) klasę.
    > Teoretycznie można użyć już istniejącej, ale w praktyce nie ma to
    > sensu, bo funkcja obsługi okna jest podpięta pod klasę.


    Nie pod klasę, tylko pod UCHWYT okna.
    A ten dostanę jako rezultat funkcji DialogBox/CreateDialog.
    Widać to pod pierwszym linkiem.
    Klasę do tych funkcji wrzuca się makrem MAKEINTRESOURCE - pewnie można też w razie
    potrzeby wydłubać z tego nazwę klasy dialogu.

    Więc? Po co te zbytki z RegisterClass? :-)



    > Jeżeli Main Window jest przypadkiem dialogiem to przyda się
    > IsDialogMessage i nieco inna pompa komunikatów - szczegóły zna Google
    > i Petzold.

    No, nie wiem. Petzoldowi się zapomniało odpalić w kodzie DestroyWindow.
    Szczegół. Ale właśnie o szczegóły pytam. ;-)

    Przydałaby się jakaś kontynuacja typu: Programming Windows In Depth, ale ta kanalia w
    siszarpy poszła i lansuje się gdzie indziej...

    A propos szczegółów - modalność okna nie jest jego stanem bezwzględnym, tylko
    sposobem zachowania wobec okna-rodzica, którego uchwyt przekazuje się w wywołaniu
    DialogBox[Param]. A jeśli i tak wstawiam tam NULL-a, to... kto mi zabroni odpalić
    kilka takich "modalnych" dialogów naraz? :-)

    Wobec tego, moje pierwsze pytanie też mocno zmienia sens.

    Nachodzi mnie zresztą generalne przeczucie, że używanie dialogów w ten sposób jest
    niejako jazdą do Sieradza przez Mediolan i wszelkie moje rozterki mają źródło właśnie
    tutaj.


  • 8. Data: 2018-03-22 15:50:22
    Temat: Re: [WinAPI] Okno dialogowe jako główne
    Od: slawek <f...@f...com>

    On Tue, 20 Mar 2018 04:28:25 -0700 (PDT), DMR <m...@g...com>
    wrote:
    > Nie pod klasę, tylko pod UCHWYT okna.

    Wyruszyła mnie twoja historia.

    No cóż, skoro bidulku nie wiesz po co jest niepotrzebne
    MAKEPROCINSTANCE, skoro nie rozumiesz różnicy pomiędzy oknem a jego
    klasą... to kim ja jestem, aby ostrzegać cię przed twoimi własnymi
    pomysłami? Przeczytaj kilka książek, napisz kilkadziesiąt aplikacji,
    sam dojdziesz do wszystkiego.


  • 9. Data: 2018-03-22 21:31:30
    Temat: Re: [WinAPI] Okno dialogowe jako główne
    Od: DMR <m...@g...com>

    > to kim ja jestem, aby ostrzegać cię przed twoimi własnymi pomysłami?


    No właśnie, pomyliłeś wątki.
    Zjeżdżaj do tych z Caps Lockiem.


  • 10. Data: 2018-03-23 07:11:11
    Temat: Re: [WinAPI] Okno dialogowe jako główne
    Od: slawek <f...@f...com>

    On Thu, 22 Mar 2018 13:31:30 -0700 (PDT), DMR <m...@g...com>
    wrote:
    > No właśnie, pomyliłeś wątki.

    A jak tam z długością łuku paraboli? W końcu nic wstydliwego, ale jak
    widzisz Internet niczego nie zapomina.

    W tym wątku też nie zapomniał: pytałeś o potencjalne problemy jakie
    mogą powstać przy pisaniu programu w którym główne okno jest
    dialogiem. Windows API, jakieś starsze Windows CE, prawdopodobnie C.

    Męczył cię problem dlaczego w książkowym przykładzie nie ma
    DestroyWindow. (A tak na marginesie: skompiluj ten przykład, sprawdź
    jak działa.)

    Co patologiczne: upierasz się że funkcja obsługi okna jest skojarzona
    z uchwytem okna, a nie z klasą okna. Choć nie podaje się jej w
    CreateWindow (CreateWindowEx), ale przekazuje przy rejestracji klasy
    okna.

    Podsumowując: trochę ci brakuje wiedzy.

strony : [ 1 ] . 2 . 3


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: