Megosztás:


WM_LBUTTONDOWN üzenet

Közzétéve, amikor a felhasználó lenyomja a bal egérgombot, miközben a kurzor az ablak ügyfélterületén van. Ha az egér nincs rögzítve, az üzenet a kurzor alatti ablakba kerül. Ellenkező esetben az üzenet arra az ablakra kerül, amely rögzítette az egeret.

Az ablak a WindowProc függvényen keresztül kapja meg ezt az üzenetet.

#define WM_LBUTTONDOWN                  0x0201

Paraméterek

wParam

Azt jelzi, hogy a különböző virtuális kulcsok leállnak-e. Ez a paraméter az alábbi értékek közül egy vagy több lehet.

Érték Jelentés
MK_CONTROL
0x0008
A CTRL billentyű le van omlva.
MK_LBUTTON
0x0001
A bal egérgomb le van gombra kattintva.
MK_MBUTTON
0x0010
A középső egérgomb le van va.
MK_RBUTTON
0x0002
A jobb egérgomb le van omlva.
MK_SHIFT
0x0004
A SHIFT billentyű le van omlva.
MK_XBUTTON1
0x0020
A XBUTTON1 leállt.
MK_XBUTTON2
0x0040
A XBUTTON2 leállt.

lParam

Az alacsonyrendű szó a kurzor x koordinátáját adja meg. A koordináta az ügyfélterület bal felső sarkához viszonyítva van.

A magasrendű szó a kurzor y koordinátáját adja meg. A koordináta az ügyfélterület bal felső sarkához viszonyítva van.

Visszaadott érték

Ha egy alkalmazás feldolgozza ezt az üzenetet, nullát kell visszaadnia.

Példa

LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    switch (msg)
    {
    case WM_LBUTTONDOWN:
        {
            // Extract cursor coordinates using the recommended macros
            int xPos = GET_X_LPARAM(lParam);
            int yPos = GET_Y_LPARAM(lParam);
            
            // TODO: Add your left-click handling logic here
            // For example: track selection, start drag operation, etc.
            
            return 0; // Message processed
        }
    
    default:
        return DefWindowProc(hWnd, msg, wParam, lParam);
    }
}

További példákért lásd Klasszikus Windows-minták a GitHubon.

Megjegyzések

Amint fentebb említettük, az x koordináták a visszatérési érték alacsony rövid; az y koordináta nagy sorrendben rövid (mindkettő aláírt értékeket jelöl, mert több monitorral rendelkező rendszereken negatív értékeket vehet fel). Ha a visszatérési érték egy változóhoz van rendelve, a MAKEPOINTS makróval lekérhet egy PONT struktúrát a visszatérési értékből. A GET_X_LPARAM vagy GET_Y_LPARAM makróval is kinyerheti az x vagy az y koordinátát.

Fontos

Ne használja a LOWORD vagy HIWORD makrókat a kurzor pozíciójának x- és y koordinátáinak kinyeréséhez, mert ezek a makrók helytelen eredményeket adnak vissza több monitorral rendelkező rendszereken. A több monitorral rendelkező rendszerek negatív x és y koordinátákkal rendelkezhetnek, a LOWORD és HIWORD pedig aláíratlan mennyiségként kezelik a koordinátákat.

Az ALT billentyű lenyomása észleléséhez ellenőrizze, hogy GetKeyState-e VK_MENU< 0-val. Ne feledje, hogy ez nem lehet GetAsyncKeyState.

Követelmények

Követelmény Érték
Minimálisan támogatott ügyfél
Windows 2000 Professional [csak asztali alkalmazások]
Minimálisan támogatott kiszolgáló
Windows 2000 Server [csak asztali alkalmazások]
Fejléc
Winuser.h (a Windowsx.h is)

Lásd még:

referencia

GET_X_LPARAM

GET_Y_LPARAM

GetCapture

GetKeyState

SetCapture

WM_LBUTTONDBLCLK

WM_LBUTTONUP

fogalmi

egérbemeneti

Egyéb erőforrások

MAKEPOINTS

POINTS