ComboBox

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

  1. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    в обработчике WM_SIZE окна родителя меняю позицию ComboBox-а в соответствие с размерами, всё бы хорошо если бы не неприятный эффект. после вызова

    invoke SetWindowPos,_hBox,0,5,eax,97,20,0

    ComboBox получает фокус, как бы сделать так чтобы он его не получал?

    вот код который создаёт Box

    Код (Text):
    1. invoke  CreateWindowEx,WS_EX_CLIENTEDGE,addr cbox,0, \
    2.     WS_CHILD or WS_VISIBLE or CBS_DROPDOWN , \
    3.     5,390,97,20,hWnd,0,hInstance,0
    4. mov _hBox,eax
     
  2. x0man

    x0man New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2008
    Сообщения:
    358
    на другой компонент фокус ставь...
     
  3. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    пробовал, нефига. получаются оба в фокусе.
     
  4. x0man

    x0man New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2008
    Сообщения:
    358
    а... ну это не тот фокус о котором говорим... это вроде бы как индекс в комбобоксе...
    потыкай это... или я могу ошибаться, не помню =\\
     
  5. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    x0man круть спасибо :)

    сделал так : invoke SendMessage,_hbox,CB_SETCURSEL,0,0
     
  6. x0man

    x0man New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2008
    Сообщения:
    358
    фига, работает, надо же.... думал не будет :)))
     
  7. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    может способ и через Ж... но работает :lol:
     
  8. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    2FED
    Попробуй предать последним параметром SetWindowPos - SWP_NOZORDER or SWP_NOACTIVATE.
     
  9. AsmGuru62

    AsmGuru62 Member

    Публикаций:
    0
    Регистрация:
    12 сен 2002
    Сообщения:
    689
    Адрес:
    Toronto
    MoveWindow() - not SetWindowPos!
     
  10. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    q_q к сожелению этот способ не работает.
     
  11. DEEP

    DEEP Андрей

    Публикаций:
    0
    Регистрация:
    27 апр 2008
    Сообщения:
    491
    Адрес:
    г. Владимир
    2FED
    А если ещё добавить SWP_NOSENDCHANGING?
     
  12. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    А как сделать такого вида комбобокс,и потом сщитать с него значения?

    или это ручная отрисовка?
     
  13. dead_body

    dead_body wasm.ru

    Публикаций:
    0
    Регистрация:
    3 сен 2004
    Сообщения:
    603
    Адрес:
    Украина;г.Харьков;г.Н.Каховка
    или я чего то не понял, или тебе нужно GetWindowText?

    Если нужно лови CBN_SELCHANGE или CBN_EDITCHANGE, а можно оба ловить.
     
  14. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    dead_body всё правильно, но GetWindowText возвращает тока номер сщёта, а сумму нет
     
  15. dead_body

    dead_body wasm.ru

    Публикаций:
    0
    Регистрация:
    3 сен 2004
    Сообщения:
    603
    Адрес:
    Украина;г.Харьков;г.Н.Каховка
    2FED
    только проснулся и видимо торможу. Какой номер счета? И что за сумма?

    Если не устраивает GetWindowText , то делай
    invoke SendMessage,_hbox,CB_GETCURSEL,0,0
    mov nIndex,eax
    invoke SendMessage,_hbox,CB_GETITEMDATA,nIndex,0
    mov associatedvalue,eax

    associatedvalue - значение которое ассоциируется со строкой.
     
  16. Arthur

    Arthur New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2007
    Сообщения:
    494
    2FED
    скорее ручками сумма изображается. Номер счета лежит в стандартном буфере (WindowText), а сумма в другом буфере.