Label и его эвенты

Раздел посвящен программированию с использованием Power Basic.
X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Label и его эвенты

Сообщение X-BOND » 26.04.2004 (Пн) 18:30

Как можно отловить его событие?
Если ловить глобально, например, %WM_LBUTTONDOWN то CBCTL в любом случае возвращает еденицу. Локальный эвент для конкретного контрола вообще не дает никакого эффекта.

Код: Выделить всё
CALLBACK FUNCTION WndProc()

SELECT CASE CBMSG

CASE %WM_COMMAND
'Тоже не срабатывает

CASE %WM_INITDIALOG
'.....

CASE %WM_RBUTTONUP : ABORT = 1

CASE %WM_LBUTTONDOWN

MSGBOX CBCTL  'Всегда 1

END SELECT

END FUNCTION


Где собака зарылась?

Шурик
Самогонщик
Самогонщик
Аватара пользователя
 
Сообщения: 1657
Зарегистрирован: 30.06.2003 (Пн) 13:27
Откуда: из запоя :))))) Матных сообщений: 972

Сообщение Шурик » 26.04.2004 (Пн) 18:47

Скорее всего сабака зарылась в глобале, если в локале вобще ни каких "движений"......
Хотя я до этого не дошел :oops:
Кстати это токо для Label?????

X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Сообщение X-BOND » 26.04.2004 (Пн) 18:54

Батоны, по крайней мере, работают

Шурик
Самогонщик
Самогонщик
Аватара пользователя
 
Сообщения: 1657
Зарегистрирован: 30.06.2003 (Пн) 13:27
Откуда: из запоя :))))) Матных сообщений: 972

Сообщение Шурик » 26.04.2004 (Пн) 19:04

Щас проверить нет возможности, завтра посматрю))))))))
НАЙДЕМ ОТВЕТ))))))) :D

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 27.04.2004 (Вт) 4:18

Label - это, как я помню, lightweight - контрол? (без hwnd)

Он просто работает, как "оболочка API", т.е. просто вызывает API-функции без "сложного кода" :)
Так что в случае с label'ом отловить событие сложно :)

Надеюсь, доходчиво объяснил...

X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Сообщение X-BOND » 07.05.2004 (Пт) 17:49

У меня на форме (то бишь диалоге) очень простая геометрия контролов. Там они в ряд идут, как пионеры. Так вот я хочу их идентифицировать по координате клика. При глобальном клике в параметр (непомню, или LParam или WParam) передается длинное целое, которое и содержит информацию о "координате мышки". Но как оттуда извлечь привычные X и Y ?

Dark Machine
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 126
Зарегистрирован: 26.05.2004 (Ср) 13:12

Сообщение Dark Machine » 26.05.2004 (Ср) 13:25

Чтобы реагировал на клик или дабл клик, сначало надо дать знать,
что он может получать уведомления о кликах: %SS_NOTIFY

В общем, используй этот код, когда нарисуешь контрол:
Код: Выделить всё
    CONTROL ADD LABEL,   hDlg,  %IDC_LABEL, "Click on me", _
                     140, 124, 96, 10, %WS_CHILD OR %WS_VISIBLE OR _
                                              %WS_BORDER OR %SS_LEFT OR _
                                              %SS_NOTIFY, %WS_EX_LEFT  OR _
                                              %WS_EX_LTRREADING   

А обрабатывается примерно так:
Код: Выделить всё
SELECT CASE %WM_COMMAND
  SELECT CASE AS LONG CBCTL
    ....
      CASE %IDC_CFGFILE
            IF CBCTLMSG = %BN_CLICKED OR CBCTLMSG = 1 THEN
                MSGBOX "You've clicked the label!"
            END IF   

X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Сообщение X-BOND » 15.06.2004 (Вт) 12:04

А как тогда можно отловить нажатие/отпускание правой кнопки?

BP
Бывалый
Бывалый
 
Сообщения: 234
Зарегистрирован: 17.02.2004 (Вт) 5:34
Откуда: Украина

Сообщение BP » 29.06.2004 (Вт) 22:57

X-BOND писал(а):У меня на форме (то бишь диалоге) очень простая геометрия контролов. Там они в ряд идут, как пионеры. Так вот я хочу их идентифицировать по координате клика. При глобальном клике в параметр (непомню, или LParam или WParam) передается длинное целое, которое и содержит информацию о "координате мышки". Но как оттуда извлечь привычные X и Y ?


Используй HiWrd и LoWrd.


Вернуться в Power Basic

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

    TopList