eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingco jest najtrudniejszego w programowaniu?Re: co jest najtrudniejszego w programowaniu?
  • X-Received: by 10.140.107.35 with SMTP id g32mr279092qgf.2.1402867136035; Sun, 15 Jun
    2014 14:18:56 -0700 (PDT)
    X-Received: by 10.140.107.35 with SMTP id g32mr279092qgf.2.1402867136035; Sun, 15 Jun
    2014 14:18:56 -0700 (PDT)
    Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
    atman.pl!news.nask.pl!news.nask.org.pl!newsfeed.pionier.net.pl!news.glorb.com!h
    3no3675871igd.0!news-out.google.com!q9ni6501qaj.0!nntp.google.com!w8no2676531qa
    c.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Sun, 15 Jun 2014 14:18:55 -0700 (PDT)
    In-Reply-To: <b...@g...com>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=37.209.154.198;
    posting-account=Sb6m8goAAABbWsBL7gouk3bfLsuxwMgN
    NNTP-Posting-Host: 37.209.154.198
    References: <f...@g...com>
    <lmmise$492$1@node1.news.atman.pl>
    <b...@g...com>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <a...@g...com>
    Subject: Re: co jest najtrudniejszego w programowaniu?
    From: firr <p...@g...com>
    Injection-Date: Sun, 15 Jun 2014 21:18:56 +0000
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.comp.programming:205980
    [ ukryj nagłówki ]

    ps jak ktos chce zobaczyc centralny szitowaty fragment tego szitowatego kodu 9ktorego
    nie che mi sie przepisywac bo działa a zagadnienie jest mega szitowate) to moge go
    wkleic (poniekad po temu ze to dziala na pol cudem i jakbym to zgubil to nie
    chcialoby mi sie meczyc jeszcze raz ze "zgadywaniem" tego

    (jest to rozbabrany testowy kod na brudno z zalozenia beznadziejnego modulu -
    chodzilo tylko o to by te syfiaste skoki w koncu sie odfiltorowywaly, co chyba dziala
    bo nawet nie ejstem pewien, na oko dziala)

    int cursor_jump_x = 0;
    int cursor_jump_y = 0;
    int cursor_wrap_x = 200;
    int cursor_wrap_y = 200;

    bool ShouldSkipMoveTo(int x, int y)
    {
    POINT p; GetCursorPos(&p);

    if( p.x==x && p.y==y ) return 1;

    return 0;

    }

    void JumpCursorTocentre()
    {

    RECT r; GetWindowRect(hwnd, &r);

    cursor_jump_x = (r.left + r.right )/2 ;
    cursor_jump_y = (r.top + r.bottom )/2;

    SetCursorPos(cursor_jump_x,
    cursor_jump_y);


    }


    int WrapMouse()
    {

    POINT p; GetCursorPos(&p);


    if(p.x > cursor_jump_x + cursor_wrap_x/2) JumpCursorTocentre();
    else if(p.x < cursor_jump_x - cursor_wrap_x/2) JumpCursorTocentre();
    else if(p.y > cursor_jump_y + cursor_wrap_y/2) JumpCursorTocentre();
    else if(p.y < cursor_jump_y - cursor_wrap_y/2) JumpCursorTocentre();
    else return 0;

    return 1;

    }


    void ToggleCursor()
    {
    hide_mouse_cursor=!hide_mouse_cursor;

    if(!hide_mouse_cursor) ShowCursor(1);
    else ShowCursor(0) ;

    }

    int ScreenPosX(int client_x)
    {
    RECT r;
    POINT p;
    GetClientRect(hwnd, &r);
    p.x = r.left + client_x;
    p.y = r.top;

    ClientToScreen(hwnd, &p);
    return p.x;

    }

    int ScreenPosY(int client_y)
    {
    RECT r;
    POINT p;
    GetClientRect(hwnd, &r);
    p.x = r.left;
    p.y = r.top + client_y;

    ClientToScreen(hwnd, &p);
    return p.y;
    }









    int mouse_x = -1;
    int mouse_y = -1;
    int mouse_dx = -1;
    int mouse_dy = -1;
    int mouse_prev_x = -1;
    int mouse_prev_y = -1;

    int mouse_wheel_delta = 0;

    void mouse_move(int x, int y)
    {

    mouse_dx = x - mouse_prev_x;
    mouse_dy = y - mouse_prev_y;

    mouse_prev_x = x ;
    mouse_prev_y = y ;

    mouse_x = x ;
    mouse_y = y ;


    }




    void MouseProc(UINT message, WPARAM wparam, LPARAM lparam)
    {

    if( message==WM_SETCURSOR)
    {
    WORD ht = LOWORD(lparam);
    static bool hiddencursor = false;
    if (HTCLIENT==ht && !hiddencursor)
    {
    hiddencursor = true;
    ShowCursor(false);
    }
    else if (HTCLIENT!=ht && hiddencursor)
    {
    hiddencursor = false;
    ShowCursor(true);
    }
    }



    if( message==WM_MOUSEMOVE)
    {
    int x = LOWORD(lparam);
    int y = HIWORD(lparam);



    // if(0)

    if(ShouldSkipMoveTo(cursor_jump_x, cursor_jump_y))
    {
    // ?????????
    mouse_dx = 0;
    mouse_dy = 0;

    mouse_prev_x = x ;
    mouse_prev_y = y ;

    mouse_x = x ;
    mouse_y = y ;


    }
    else
    {
    mouse_move(x,y);
    }


    }

    if( message==WM_MOUSEWHEEL)
    {
    mouse_wheel_delta = (short) HIWORD(wparam);

    }


    }


    ///????

    int mouse_current_frame_x;
    int mouse_current_frame_y;
    int mouse_prev_frame_x;
    int mouse_prev_frame_y;

    int mouse_frame_dx;
    int mouse_frame_dy;

    void MouseFrame()
    {
    if( WrapMouse())
    {
    mouse_prev_frame_x = mouse_current_frame_x ;
    mouse_prev_frame_y = mouse_current_frame_y ;

    mouse_current_frame_x = ScreenPosX(mouse_x);
    mouse_current_frame_y = ScreenPosY(mouse_y);

    mouse_frame_dx = mouse_current_frame_x - mouse_prev_frame_x;
    mouse_frame_dy = mouse_current_frame_y - mouse_prev_frame_y;

    mouse_prev_frame_x = cursor_jump_x ;
    mouse_prev_frame_y = cursor_jump_y ;

    mouse_current_frame_x = cursor_jump_x;
    mouse_current_frame_y = cursor_jump_y;


    }
    else
    {

    mouse_prev_frame_x = mouse_current_frame_x ;
    mouse_prev_frame_y = mouse_current_frame_y ;

    mouse_current_frame_x = ScreenPosX(mouse_x);
    mouse_current_frame_y = ScreenPosY(mouse_y);

    mouse_frame_dx = mouse_current_frame_x - mouse_prev_frame_x;
    mouse_frame_dy = mouse_current_frame_y - mouse_prev_frame_y;
    }


    to cholerstwo sluzy tylko po temu by cofac skokami kursor i zarazem zwracac dobre
    delty ruchu myszy ktore nie uwzgledniaja tych skokow
    - jest to megasyfiasty kod na pol napisany na pol zgadniety (czy da sie to radykalnie
    uproscic to nie wiem bo jest to tak durne ze nie chce mi sie zebrac by to
    przemyslec), jesli chodzi o problemy z myszami to jest to jakies 20% wszystkich
    problemow bo sa jeszcze problemy z ogarnianiem tego clipnietego kursora, i z obsluga
    dwu myszy na raw input tak by jedna dzialala w zwyklym trybia a druga jako sensor



Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

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: