Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C: WinAPI listat

kayttaja-3842 [17.09.2007 14:33:17]

#

Juu eli ohjelmani alkaa olemaan valmis tosin vielä yksi juttu uupuu. Eli kun minulla on nytten tuossa tuollanen listaboxi ja siitä pitäisi saada tarkitettua,että jos sen jotain kohtaa tuplaklikataan, niin sitten tapahtuu määrätty asia.

Tähän mennessä olen tarkistanut kohdan niin, että olen laittanut timeriin tarkistuksen joka sekuntti.

eli timerissä on ollut tällänen

int indeksi = SendMessage (hwndPList, LB_GETCURSEL, 0, 0);

...mutta tuo on todella hidasta ja huono tapa. Tämän takia aloinkin tuumimaan,että mahtaisiko WinAPI:lla olla oma käsittely tapa tuollekkin. Eli tarkistetaan vain jos käyttäjä painaa jotain listan indeksesistä.

Elikkäs tietääkö kukaan onko WinAPI:lla tuollasta tarkistajaa joka tarkistaisi painaako käyttäjä mitään listan indekseistä?

TsaTsaTsaa [18.09.2007 22:21:19]

#

Mr. Google says hello.

Metabolix [19.09.2007 17:12:24]

#

TsaTsaTsaa kirjoitti:

Mr. Google says hello.

Voisi vähän katsoa, mitä linkkejä laittaa. Väärä kieli ja väärät kirjastot.

TsaTsaTsaa [19.09.2007 17:20:07]

#

Oho, katos vaan. Tosin kielestähän ei kayttaja-3842 sanonut mitään.

kayttaja-3842 [19.09.2007 17:52:21]

#

Joo mut kirjastosta kylläkin.

Deffi [19.09.2007 19:19:34]

#

LBN_DBLCLK

lainaus:

An application sends the LBN_DBLCLK notification message when the user double-clicks a string in a list box. The parent window of the list box receives this notification message through the WM_COMMAND message.

Tätä kai haetaan?
Kannattaa hieman MSDN:ää opetella käyttämään, sieltä kun tosiaan löytyy kaikki tiedot kontrollien viesteistä ja ilmoituksista kunhan osaa etsiä.

switch(message)
{
    case WM_COMMAND:
        switch(LOWORD(wParam)) // Alempi WORD kertoo minkä kontrollin viesti
        {
            case IDC_LIST:
                if(HIWORD(wParam) == LBN_DBLCLK) // Ylempi WORD kertoo itse notificationista
                {
                    // Tuplaklikattiin, tehään jotain kivaa
                }
            break;

            ...

            default:
                break;
        }
    break;

    ...

    default:
       return DefWindowProc (hwnd, message, wParam, lParam);
}

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta