BM_GETCHECK не работает

Тема в разделе "WASM.BEGINNERS", создана пользователем murtix, 2 дек 2006.

  1. murtix

    murtix New Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    110
    Адрес:
    Russia
    Проблема не в TRUE или FALSE, а в том что после
    invoke SendDlgItemMessage, hWndOp, IDC_cbDraw, BM_GETCHECK, 0, 0
    всегда eax=1
     
  2. murtix

    murtix New Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    110
    Адрес:
    Russia
    Я дико извиняюсь, тупая ошибка :dntknw:.
    Код (Text):
    1. mov   eax, wParam
    2.         .if lParam!=0
    3.  
    4.             .if ax==[b]IDC_cbCoord     ;     здесь cbCoord[/b]
    5.                 invoke SendDlgItemMessage, hWndOp, [b]IDC_cbDraw[/b], BM_GETCHECK, 0, 0 ; а здесь cbDraw
    6.                 .if eax == BST_CHECKED
    7.                     mov     (Points ptr [esi]).DrawCoord, TRUE
    8.                 .else
    9.                     mov     (Points ptr [esi]).DrawCoord, FALSE
    10.                 .endif
    11.             .endif
    12.         .endif
    Хе, хе а никто не заметил. :)
    Вот рабочий код
    Код (Text):
    1. .if ax==IDC_cbCoord
    2.     invoke SendDlgItemMessage, hWndOp, IDC_cbCoord, BM_GETCHECK, 0, 0
    3.     mov     (Points ptr [esi]).DrawCoord, al
    4. .endif
    Если не ипользовать BST_INDETERMINATE, прокатывает без проблем.
     
  3. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    q_q
    У меня так определено в windef.h:
    Код (Text):
    1. #ifndef FALSE
    2. #define FALSE 0
    3. #endif
    4.  
    5. #ifndef TRUE
    6. #define TRUE 1
    7. #endif
    Поэтому ничто не мешает определить иначе:
    Код (Text):
    1. #define TRUE -1
    2. #include <windows.h>
    Или вообще psdk не использовать, в смысле заголовки из psdk. Или после #include <windows.h> заюзать #undef и переопределить как хочешь.

    Зачем это менять? - Чтобы показать, что можно :) Иногда бывает нужно так извращаться для совместимости.

    Если ты считаешь это обсуждение неуместным, никто тебя не заставляет в нём участвовать.

    murtix
    Нужно было догадаться, что IDC_cbDraw != IDC_cbCoord
     
  4. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    Quantum
    Иногда бывает нужно
    Дерзай.

    ты считаешь это обсуждение неуместным
    В рамках этой темы да.

    никто тебя не заставляет в нём участвовать
    Вынужден, т.к. ты обратился в мой адрес. Заведи свою тред на эту тему, тогда посмотрим.

    murtix
    Хе, хе а никто не заметил. :)
    Я уже писал, что показанного тобой кода не достаточно, чтобы делать выводы о логике работы программы. А то что ID'ы разные, так может ты реализовывал логику зависимости состояния одного checkbox'а от состояния другого.