SysTabControl32

Общие вопросы, не зависящие от языка реализации.

Модераторы: Duncon, Hawk, Romeo, Eugie

Ответить
drmist
Сообщения: 32
Зарегистрирован: 03 авг 2004, 22:34

22 сен 2005, 19:46

Нужно создать Таб контрол.
В WndProc делаю так:

Код: Выделить всё

.if Message == WM_CREATE

		invoke CreateWindowEx, 0, offset szClassTabControl, 0, WS_CHILD or WS_VISIBLE or TCS_SINGLELINE or TCS_VERTICAL or TCS_TOOLTIPS or TCS_HOTTRACK, \
			10, 10, 60, 60, hWnd, 0, hInstance, 0

		mov hTabControl, eax

		call SetFont

		mov TC.imask, TCIF_TEXT
		mov TC.pszText, offset szClassTabControl

		invoke SendMessage, hTabControl, TCM_INSERTITEM, 0, offset TC

Код: Выделить всё

.data
	szClassTabControl	db "SysTabControl32", 0
.data?
	TC		TC_ITEM <?>
	hInstance	dd ?
	hTabControl	dd ?
	hFont		dd ?
.code

SetFont proc
	invoke SendMessage, eax, WM_SETFONT, hFont, 0
	ret
SetFont endp
В общем нефига не получается. Подскажите что-нибудь. Спасибо.
caspi
Сообщения: 7
Зарегистрирован: 08 авг 2005, 09:13

30 сен 2005, 09:30

нужно вызвать InitCommonControls()/InitCommonControlsEx() для инициализации класса табконтрола. Для вызова любой из этих функций нужно подключить comctl32.lib.
drmist
Сообщения: 32
Зарегистрирован: 03 авг 2004, 22:34

30 сен 2005, 21:54

спасибо :)
drmist
Сообщения: 32
Зарегистрирован: 03 авг 2004, 22:34

30 сен 2005, 22:35

Не подскажете, чем создать вкладку, чтобы потом получить ее хендл, как окна?
Такое вобще возможно? То есть мне нужно поместить на мои вкладки какие-то элементы управления.
Если создавать вкладки с помощью SendMessage, с ними потом нереально работать ((
Ресурсы не предлогать.
caspi
Сообщения: 7
Зарегистрирован: 08 авг 2005, 09:13

28 окт 2005, 14:29

обычно создают диалоговые окна на которых размещают контролы. их делают дочерними tab-контролу. при появлении сообщения о смене закладки текущий диалог скрывают, а новый показывают
Liar
Сообщения: 1
Зарегистрирован: 30 ноя 2006, 23:48

01 дек 2006, 20:56

Вобщем, проблема такая - создаю TabControl с двумя вкладками, по перемене вкладок вызываются соответствующие диалоговые окна, а предыдущее разрушается, все работает, НО эти диалоговые окна не "прилеплены" к главному окну, в котором tabkontrol, то есть - двигаешь окно, а эти окошки остаются на месте, и еще - когда выбираешб вкладку, то фокул уходит на это окно, а как сделать, тчо б он не уходил из программы, вобщем, что б эти окна диалоговые были именно частью родительского окна?
(VisualStudio.NET 7.1 2003 -> C++ -> winAPI)
Hawk
Сообщения: 215
Зарегистрирован: 17 фев 2004, 14:52
Откуда: СПб
Контактная информация:

06 дек 2006, 11:28

Надо чтобы эти окна были child таба, т.е. им в качестве родительского окна надо передать HWND tabControl а в стилях им сказать WS_CHILD. Покажи код, в котором ты их создаешь.
pots
Сообщения: 43
Зарегистрирован: 14 июн 2006, 14:18

07 дек 2006, 10:52

Была такая же проблема, поставил стиль Ds_control и диалог прилип :)
Ответить