Skocz do zawartości

Nemo

Członkowie
  • Postów

    0
  • Dołączył

  • Ostatnio

    Nigdy

Posty napisane przez Nemo

  1. xorek napisał:
    A meritum tego postu: dlaczego zawsze sprawdzanie konczy sie komunikatem ze teksty roznia sie, nawet jezeli tekst w Edit'cie jest taki sam?

    Proste, bo odp1 i odp2 to sa wskaźniki na ciag znakow, a jak wiadomo wskaźnik to adres w pamieci czyli jakas liczba okreslajaca polozenie pierwszego znaku tegoz ciegu. Wiec oczywiste jest ze te dwie liczby beda rozne gdzy wskazuja na dwa rozne ciagi znakow.

  2. Eh, nie wiem czy cos takiego jest ale ja kiedys napsialem klienta IRCa i uzywalem do tego zwykłych socketów ale niestety mialem crach dysku i jzu nie mam tego kodu ;)

    //edit
    i jzu mam, to sie nazywa rfc2812 i ponizej link do tego
    https://www.faqs.org/rfcs/rfc2812.html

  3. Ja niestety wiecej niz kiedys tam wrzucielm nie bede mial bo mialem krach kompa. Spalilo mi sie prawie wszystko i dyski twarde tez - wiec wszystkie dane poszly sie kopac i niestety nie mam nic :(

  4. wedlug mnie ta biblioteka windowsX to jakis smiec (no ale moge sie mylic)
    bo kawalek kodu w tym naglowku wygladac bedzie mniejwiecej tak

    #define GET_X_LPARAM(x) { LOWORD(x) }
    GET_Y_LPARAM(y)  { HIWORD(y) }

    No wiec jak widac jedno makro jest zastapione innym makrem - wedlug mnie praca bez sensu - a jak chchesz juz cos wiecej o windowsX to nie pytaj odrazu o to na forum, tylko szukaj na google ;)

    //edit
    kod z windowsx.h:

    #define GET_X_LPARAM(lp)                        ((int)(short)LOWORD(lp))
    #define GET_Y_LPARAM(lp)                        ((int)(short)HIWORD(lp))
    
  5. windowsX.h to pewnie jakies ktos cos napsial zeby sobie ukreowac latwiejsze slowa ;) w sumie nei potrzebnie ;) szkoda tlumaczyc bo ja nawet tego nigdy nei spotkalem, a Nicon dobrze to skomentował:

    No comment.

    ;)

    A co do subclassingu to nikt ci nie wytlumaczy bo jest artykul na stronie glownej o tym i to bylo juz pare razy na forum poruszane wiec wystarczy poszukac.

  6. Nie pobieraj tego do zmiennej PChar tylko do tablicy charow:
    array [0..63] of char;
    Szczerze mowiac to ja sie eni znam na pisaniu w winapi w delphim ;) Ale jest tu taki specjalista tylko niech przeczyta twój topic to ci odpowie.

  7. 3LVI5 napisał:
    jakos nie doczytalem, kazdemu sie zdarza co nie ???

    Jasne ze moze sie zdarzyc jesli jest do przeczytania minimum z 3 strony. A tu wystarczylo przeczytac jedna i juz bylo widac ze ktos o tym juz napisal. Jakby bylo wiecej stron do czytania to bym ani slowa nie napisal no ale jak nawet DRACULA zauwazyl to juz kilka arzy sie powtarzalo.

    ps
    jestem jakis niegoscinny
    witam new user ;)

  8. 3LVI5 napisał:
    Jest jeszcze inny sposob. Mozna zrobic se mutexa. Gdy kopia bedzie chciala uruchomic to po prubie zrobienia muteksa sprawdzic GetLastError() czy jest ruwny ERROR_ALREADY_EXIST jezeli tak to znaczy ze program jest juz uruchomiony. Na koncy programu zwalniamy se mutex i wszystko gra. Jeszcze mozna semaforow uzyc ale nie pamietam tera jak to sie robi. Jak interesuje cie to napisz na meila.

    hmmm... niewiem po co piszesz o mutexach skoro to juz zostalo poruszone w tym temacie :/

  9. TO jest jakby zrobienie wlasnej procedury do reakcji na zadzerzenia kontrolek. A robi się to mniewiecej tak.

    WNDPROC OldEditProc;
    
    // obsluga komunikatow dla Edita
    LRESULT CALLBACK EditProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
    {
            switch (Msg)
            {
            case WM_KEYDOWN:
                    switch(wParam)
                    {
                    case VK_RETURN:
                            MessageBox(NULL, "ble", "ble", 0);
                            break;
    
                    }
                    break;
            }
            return CallWindowProc(oldEditProc, hWnd, Msg, wParam, lParam);
    }
    
    //obsluga komunikatow dla okna glownego
    CALLBACK LRESULT WndProc(...)
    {
    //...
      case WM_CREATE:
        HWND hEdit = CreateWindow("edit",...);
        OldEditProc = (WNDPROC) SetWindowLong(hEdit, GWL_WNDPROC, (LONG) EditProc);
        break;
    //...
    }
    

    Jesli teraz nacisniesz ENTER w edicie to wyskoczy okienko MessageBox ;)
    A zeby zamist okienka wykonalo ci nacisniecie guiziak to poprostu wysylasz komunikat klikniecia do buttona.
    SendMessage(UchwytButtona, BM_CLICK, 0, 0);

×
×
  • Utwórz nowe...