Появился у меня странный глюк. Никогда не любил писать GUI, а приходится. В диалоге есть SysTabControl32 и для примера кнопка, создаю вкладку, создаю дилалог для страницы, который содержит edit. Кликаю на поле ввода во вкладке. Потом кликаю на кнопке. Все зависает. Пробовал отладить, увы. Код в аттаче. Мож кому не лень, глянет в чём косяк.
n0name в чём косяк Например. Определено - "Tab g_tabs[MAX_TABS + 1];", т.е. допустимые индексы 0 ... MAX_TABS, а в коде встречается "g_tabs[MAX_TABS + 1].xxx". У меня закладка(ки) вообще не видна(ны). Если исправить определение g_tabs, на "Tab g_tabs[MAX_TABS + 2];", то закладка(ки) появляется(ются). Правда, зависаемость от исправления не пропадает. Обязательно использовать диалог в качестве "главного" окна приложения?
q_q Да, очепятка, благодарю. Хм. В принципе контролов не много, можно самому создавать, однако проще просто убрать IsDialogMessage(). Но всё таки лучше разобратся в чём проблема, чтобы избежать такого в будущем.
А косяк вот в чем: Код (Text): void AddTab(HWND hTab, int Ind, char *path){ ...... g_tabs[Ind].wnd = CreateDialog(GetModuleHandle(0), MAKEINTRESOURCE(IDD_TAB), hTab, TabDlgProc); ..... } используй вместо hTab - GetParent(hTab); и все будет пучком,