'CreateDialogParam' как будет для окон?

Тема в разделе "WASM.BEGINNERS", создана пользователем ActioN, 8 окт 2005.

  1. ActioN

    ActioN New Member

    Публикаций:
    0
    Регистрация:
    1 апр 2005
    Сообщения:
    160
    Адрес:
    Ukraine
    Создал Tab Control, создал в нем 2 страницы. Как теперь в каждой странице создать контролы? Пробовал через сабклассинг, только что-то это не то. Есть рабочий пример, но в нем используется диалог и половина кода описана в ресурсах и после создания листов используется функция CreateDialogParam. А я использую CreateWindow. Т.е. какую команду надо использовать вместо CreateDialogParam?
     
  2. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine


    CreateWindowEx
     
  3. ActioN

    ActioN New Member

    Публикаций:
    0
    Регистрация:
    1 апр 2005
    Сообщения:
    160
    Адрес:
    Ukraine
    IceStudent, Наверное я что-то не так делаю. Совсем запутался. Создал таб, создал 2 страницы, заполнив структуру TC_ITEM. Но надо получить хендл первой страницы, чтобы создать на ней кнопку, поэтому пишу(наверное заполнение структуры здесь не прокатит):
    Код (Text):
    1. invoke CreateWindowEx,0,addr TabClName,addr Child1Name,WS_CHILD or WS_VISIBLE,
    2. 0,0,0,0,hwndtab1,tab1ID,hInstance,0    
    3. mov    hwndtab1ch1,EAX


    Так странца создается или нет? Вобщем в аттаче код. Можете посмотреть, что я не так делаю?



    [​IMG] _1909691009__TC.rar
     
  4. yureckor

    yureckor New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2004
    Сообщения:
    494
    Адрес:
    Russia
    в таб контроле нет никаких страниц, это просто кнопки.

    поэтому когда ты создал его и добавил закладок, в родительское окно будут приходить уведомляющие (notify) сообщения от него:
    Код (Text):
    1.  
    2. ...
    3.  .elseif eax==WM_NOTIFY
    4.   mov eax, [lParam ]
    5.   mov ecx, [eax+NMHDR.code]
    6.   mov eax, [eax+NMHDR.hwndFrom]
    7.   .if eax==[hTab] && ecx==TCN_SELCHANGE     ;Tab control
    8.    invoke SendMessage, eax, TCM_GETCURSEL, 0, 0
    9.    mov [view_vid], eax
    10.    ...
    11.  
     
  5. ActioN

    ActioN New Member

    Публикаций:
    0
    Регистрация:
    1 апр 2005
    Сообщения:
    160
    Адрес:
    Ukraine
    yureckor, разве у страниц(закладок) не может быть хендлов? Как же тогда создавать контролы на конкретной закладке? Или их(контролы) просто скрывать/показывать при смене закладок, а создавать не учитывая положение закладки?
     
  6. yureckor

    yureckor New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2004
    Сообщения:
    494
    Адрес:
    Russia
    хендл только у всего контрола. При переключении он посылает WM_NOTIFY родительскому, см. выше код.

    >Или их(контролы) просто скрывать/показывать при смене закладок, а создавать не учитывая положение закладки?

    Да.
     
  7. ActioN

    ActioN New Member

    Публикаций:
    0
    Регистрация:
    1 апр 2005
    Сообщения:
    160
    Адрес:
    Ukraine
    yureckor, понял. Всем спасибо за разъяснение.