Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как к определённой вкладке TabControl привязать Edit/RichEdit?

84K
01 сентября 2012 года
xrnd
3 / / 01.09.2012
Создаю TabControl с одной вкладкой, на вкладку пытаюсь поместить Edit+RichEdit. Но как привязать их к конкретной вкладке не могу понять.

Код:
TabControl = new Wnd (WS_EX_OVERLAPPEDWINDOW, WC_TABCONTROLA, NULL, WS_CHILD |
WS_VISIBLE, ParentWindow->rcClient.left,ParentWindow->rcClient.top,ParentWindow->rcClient.right,
ParentWindow->rcClient.bottom-20,ParentWindow->hWnd,0, hInstance, NULL);
 
    tabitem.mask = TCIF_TEXT;
    tabitem.iImage = -1;
 
    tabitem.pszText="Untitled";
    TabCtrl_InsertItem(TabControl->hWnd,tN,&tabitem);
 
   
NumStr = new Wnd(NULL,"RICHEDIT",NULL,WS_CHILD | WS_VISIBLE | ES_NUMBER | ES_LEFT |
ES_MULTILINE, ParentWindow->rcClient.left+6,ParentWindow->rcClient.top+30,40,
ParentWindow->rcClient.bottom-77,TabControl->hWnd,0,0,0);
 
    ::SendMessage(NumStr->hWnd,EM_SETBKGNDCOLOR,0, RGB(253,245,230));
    CHARFORMAT cFORMAt;
    ZeroMemory(&cFORMAt, sizeof(cFORMAt));
    cFORMAt.cbSize = sizeof(CHARFORMAT);
    cFORMAt.dwMask = CFM_SIZE | CFM_FACE | CFM_COLOR | CFM_CHARSET;
    cFORMAt.crTextColor = RGB(255,140,105);
    cFORMAt.bPitchAndFamily = FW_THIN;
    lstrcpy(cFORMAt.szFaceName , "a HuxleyCaps");
    ::SendMessage(NumStr->hWnd,EM_SETCHARFORMAT,0,(LPARAM)&cFORMAt);
 
HEdit = new Wnd(WS_EX_ACCEPTFILES,WC_EDIT,NULL,WS_CHILD | WS_VISIBLE | WS_HSCROLL |
WS_VSCROLL | ES_LEFT | ES_MULTILINE | ES_AUTOHSCROLL |ES_AUTOVSCROLL,
ParentWindow->rcClient.left+45,ParentWindow->rcClient.top+30,
ParentWindow->rcClient.right-55,ParentWindow->rcClient.bottom-60,TabControl->hWnd,0,0,0);
То, что в msdn уже до дыр зачитал, и всё равно не понял. В google смотрел.
414
01 сентября 2012 года
CassandraDied
763 / / 24.05.2012
Что за изврат писать в 2012м на win api интерфейсы?
Построй в любом фреймворке нужную тебе форму, скомпиль и постри отладчиком, как всё создаётся же.
UPD: один из способов решить твою проблему.
UPD2: попробуй ещё CreateWindowEx(которая создаёт дочерний контрол) в качестве родительского контрола подсовывать хэндл на таб.
84K
01 сентября 2012 года
xrnd
3 / / 01.09.2012
CreateWindowEx, её и использую. В качестве родительского, я и использую созданный tabcontrol. Но весь контрол, а мне к конкретной вкладке привязать Edit+RichEdit. Я понимаю, что за отрисовку содержимого конкретного таба я должен отвечать сам. Весь вопрос как это делается!!
414
01 сентября 2012 года
CassandraDied
763 / / 24.05.2012
Цитата: xrnd
CreateWindowEx, её и использую. В качестве родительского, я и использую созданный tabcontrol. Но весь контрол, а мне к конкретной вкладке привязать Edit+RichEdit. Я понимаю, что за отрисовку содержимого конкретного таба я должен отвечать сам. Весь вопрос как это делается!!


Код не читал, чтоли?

10
01 сентября 2012 года
Freeman
3.2K / / 06.03.2004
Цитата:
msdn уже до дыр зачитал, и всё равно не понял. В google смотрел.


В исходниках мирандовского TabSRMM посмотри.

80K
02 сентября 2012 года
MorskoyZmey
23 / / 02.09.2012
Может я чего-то и путаю, но имхо вкладки эти просто красивые кнопочки, а то что должно отображаться при нажатии на них, решать тебе.
Т.е. помести все в родительское окошко (контрол какой-нибудь) и делай его визибл или инвизибл
7
02 сентября 2012 года
@pixo $oft
3.4K / / 20.09.2006
Если что,вот статья про TabControl
278
02 сентября 2012 года
Alexander92
1.1K / / 04.08.2008
MorskoyZmey прав. В WinAPI нет понятия TabPage, как в .NET Framework, скажем. Ты привязываешь все к одному TabControl, а потом ловишь событие переключения вкладок и отображаешь нужную часть содержимого.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог