CTabCtrl

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: CTabCtrl

Romeo » 25 апр 2005, 14:29

Ошибка в том, что tab кидает нотификацию, а не наоборот (кто-то должен кидать нотификацию tab'у). Ситуацию нужно разрешать с помощью сообщения PSM_SETCURSEL либо в таком виде:

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

lResult = SendMessage(          // returns LRESULT in lResult     
     (HWND) hWndControl,       // handle to destination control
     (UINT) PSM_SETCURSEL,   // message ID
     (WPARAM) wParam,          // = (WPARAM) (int) index;
     (LPARAM) lParam              // = (LPARAM) (HPROPSHEETPAGE) hpage; 
);  
либо воспользоваться макро PropSheet_SetCurSel:

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

BOOL PropSheet_SetCurSel(
     HWND hPropSheetDlg,
     HPROPSHEETPAGE index,
     HPROPSHEETPAGE hpage
);

CTabCtrl

Alezis » 23 апр 2005, 12:44

Трабл такой .
Есть табкантрол при нажатии на табы прячу/показываю соответствующие элементы на диалоге.
Нужно послать из другого окна того же процесса мессагу чтобы изменить закладку таб контрола, т.е. чтобы он перключился и показывал уже другие элементы(как при клике мышью по другому табу).
кароче как попасть в функцию обработки TCN_SELCHANGE
Я делаю так:

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

	NMHDR p;
	p.hwndFrom = m_tabWnd;
	p.idFrom = IDC_TAB;
	p.code = 0;
	  ::PostMessage(m_tabWnd,WM_NOTIFY,(WPARAM)p.idFrom,(LPARAM)&p);
Где ошибка?

Вернуться к началу