PDA

Просмотр полной версии : SysTabControl32



drmist
22.09.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
30.09.2005, 09:30
нужно вызвать InitCommonControls()/InitCommonControlsEx() для инициализации класса табконтрола. Для вызова любой из этих функций нужно подключить comctl32.lib.

drmist
30.09.2005, 21:54
спасибо :)

drmist
30.09.2005, 22:35
Не подскажете, чем создать вкладку, чтобы потом получить ее хендл, как окна?
Такое вобще возможно? То есть мне нужно поместить на мои вкладки какие-то элементы управления.
Если создавать вкладки с помощью SendMessage, с ними потом нереально работать ((
Ресурсы не предлогать.

caspi
28.10.2005, 14:29
обычно создают диалоговые окна на которых размещают контролы. их делают дочерними tab-контролу. при появлении сообщения о смене закладки текущий диалог скрывают, а новый показывают

Liar
01.12.2006, 20:56
Вобщем, проблема такая - создаю TabControl с двумя вкладками, по перемене вкладок вызываются соответствующие диалоговые окна, а предыдущее разрушается, все работает, НО эти диалоговые окна не "прилеплены" к главному окну, в котором tabkontrol, то есть - двигаешь окно, а эти окошки остаются на месте, и еще - когда выбираешб вкладку, то фокул уходит на это окно, а как сделать, тчо б он не уходил из программы, вобщем, что б эти окна диалоговые были именно частью родительского окна?
(VisualStudio.NET 7.1 2003 -> C++ -> winAPI)

Hawk
06.12.2006, 11:28
Надо чтобы эти окна были child таба, т.е. им в качестве родительского окна надо передать HWND tabControl а в стилях им сказать WS_CHILD. Покажи код, в котором ты их создаешь.

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