Skocz do zawartości

Jarema

Członkowie
  • Postów

    0
  • Dołączył

  • Ostatnio

    Nigdy

Posty napisane przez Jarema

  1. Ja sam nie próbowałem (lenistwo ;)) ale to co mówi Piasiu ma sens. Windows sam odpowiednio obsługuje komunikaty wysyłane do kontrolek i WM_CLOSE wysłany do kontrolki powinien działać. Ewentualnie spróbuj subclassingu kontrolki (tutorial na stronce), przechwyć komunikat WM_DESTROY i sam wyślij jej PostQuitMessage(0). Spróbuj tak, a jak nie podziała, to mnie się kończą pomysły.
    Powodzenia :)

  2. nie kumam zabardzo o co z tym chodzi:
    if(IsWindowVisible(hwnd_t) && Msg!=WM_PAINT && Msg!=WM_NCPAINT)
    return 0;
    po co to?
    i co to jest funkcja komunikatów? chodzi ci o pętlę komunikatów czy procedurę okna?
    Zrób tak: po prostu w procedurze okna okna głównego przechwyć komunikat WM_SETFOCUS:
    case WM_SETFOCUS:
    if (IsWindowVisible(hwnd_oknomodlane))
    SetFocus(hwnd_oknomodalne);
    return 0;

    To powinno pomóc, ale nie kombinuj nic z pętlą komunikatów.

  3. Tobie nie chodzi jednak o dialogi. Przejrzałem wszystkie style okien, ale nie spotkałem żadnego które by dawało modalność, DS_MODALFRAME nie działa bo DS to prefiks od DIALOG STYLE. Ale możesz pokombinować coś sam np. z przekazywaniem fokusu, żeby twoje okno jeśli jest włączone nie dało fokusu żadnemu innemu oknu w programie.

  4. Re: dodatkowe pytanie
    pobierasz uchwyt kontrolki za pomocą GetDlgItem i wysyłasz komunikat:

    char txt[20];

    SendMessage(GetDlgItem(hDlg, ID_EDIT), EM_GETLINE, 0, (LPARAM)
    (LPCSTR) txt);
    if (txt)
    ktoś coś wpisał;

  5. Ja obczaiłem inny sposób na sprawdzanie tego execa. Robisz taki warunek:

    char *sstr;

    if (sstr = strstr(text, ".exe"))
    jest exekiem;
    else
    nie jest exekiem;

    to wszytko :-]

  6. Miałem taki problem niekiedy, ale przeważnie robił mi bagno w całym stringu. Ale możesz spróbować najpierw wyzerować zmienną text:
    for (int i = 0; i < 30; i++)
    text = '\0';

    jak to nie pomoże to wpisz do tego text`u jakiś znak na początku. np.
    text[0] = ';' ;

    powinno pomódz, przynajmnij mnie pomagało chociarz miałem trochę inną sytuację.

  7. Hmm, żadko go używam i nie wiedziałem że robi takie szambo, dzięki za poradę. A co do biblioteki to osobiście się nie spotkałem (nie było potrzeby), ale miałem kiedyś opis foratu jpeg`a.

  8. Mam taki programik o nazwie Restorator do wyciągania zasobów z innych programów, a na dodatek polski!!! Jak ktoś chce to go mogę podesłać, tylko podajcie e-mail. :) 

  9. Jeśli chodzi ci o wyświetlenie menu kontekstowego po kliknięciu na ikonę w tray`u to gotowy przykład masz na stronce w lekcjach o nazwie Tray, a i przykład się znajdzie, w downloads jest programik "Shellka - Muszelka" autorstwa pinolca.

  10. Drogi Maćku. Ja mam 15 lat i tak naprawdę nowe technologie są potrzebne jedynie do zdobycia pracy, bo w Visualu można napisać wszystko, a napewno kiedy będę szukał pracy wejdzie już c++#$%#@ i .NET**, bo Microsoft ciągle pracuje. Uważam, że nie ma sensu uczyć się nowości tylko po to żeby umieć, gdyby tak było sidział bym jedynie nad książkami, a napewno tak będzie jak będę szukał roboty, bo na umiejących nowości jest największe zapotrzebowanie.

  11. Możesz. Wywołaj funkcję EnumWindows potem znajdz sobie po tytule okna aplikację w której chcerz wywołać naciśnięcie klawisze. Następnie pobierz sobie nazwę klasy tego okna, potem uchwyt i wyślij komunikat WM_KEYDOWN z kodem klawisza kóry chcerz przesłać.

×
×
  • Utwórz nowe...