Диалог + TabControl + IsDialogMessage

Тема в разделе "WASM.WIN32", создана пользователем n0name, 9 июл 2007.

  1. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Появился у меня странный глюк.
    Никогда не любил писать GUI, а приходится.
    В диалоге есть SysTabControl32 и для примера кнопка, создаю вкладку, создаю дилалог для страницы, который содержит edit.
    Кликаю на поле ввода во вкладке. Потом кликаю на кнопке. Все зависает. Пробовал отладить, увы.
    Код в аттаче. Мож кому не лень, глянет в чём косяк.
     
  2. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    n0name
    в чём косяк
    Например. Определено - "Tab g_tabs[MAX_TABS + 1];", т.е. допустимые индексы 0 ... MAX_TABS, а в коде встречается "g_tabs[MAX_TABS + 1].xxx". У меня закладка(ки) вообще не видна(ны). Если исправить определение g_tabs, на "Tab g_tabs[MAX_TABS + 2];", то закладка(ки) появляется(ются). Правда, зависаемость от исправления не пропадает.

    Обязательно использовать диалог в качестве "главного" окна приложения?
     
  3. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    q_q
    Да, очепятка, благодарю.
    Хм. В принципе контролов не много, можно самому создавать, однако проще просто убрать IsDialogMessage(). Но всё таки лучше разобратся в чём проблема, чтобы избежать такого в будущем.
     
  4. SSS

    SSS New Member

    Публикаций:
    0
    Регистрация:
    24 ноя 2003
    Сообщения:
    12
    А косяк вот в чем:

    Код (Text):
    1. void AddTab(HWND hTab, int Ind, char *path){
    2. ......
    3.     g_tabs[Ind].wnd = CreateDialog(GetModuleHandle(0), MAKEINTRESOURCE(IDD_TAB), hTab, TabDlgProc);
    4. .....
    5. }
    используй вместо hTab - GetParent(hTab); и все будет пучком, :)
     
  5. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    SSS
    угу, уже сам дошёл до этого =)