Здравствуйте, Carc, Вы писали:
C>Здравствуйте, Melamed, Вы писали:
M>>Здравствуйте
M>>Хотелось бы при выборе определенного узла в TreeView фокус ввода автоматически передавался бы на в другой контроль в этом же главном окне. Для этого в новигационом сообщении TVN_SELCHANGED, полученном от моего TreeView Control вызываю API функцию SetFocus(). Но она почему то не работает.
M>>Операционная система MS Windows 10.
M>>Подскажите пожалуйста, в чем тут дело.
M>>Заранее благодарен
C>Где фокус в момент получения TVN_SELCHANGED?
В Момент обработки сообщения фокус находился на TreeView, от которого пришло данное сообщения
C>Где обрабатывается TVN_SELCHANGED?
В Родительском окне
C>И вообще код в студию!
Обработка сообщения TVN_SELCHANGED следующая
case IDC_TREEVIEW:
{
switch (pHdr->code)
{
case TVN_SELCHANGED:
{
LPNMTREEVIEW pNTV = (LPNMTREEVIEW)pHdr;
CShFolder *pFolder = (CShFolder*)pNTV->itemNew.lParam;
TCHAR szBuffer[MAX_PATH];
pFolder->GetFullName(szBuffer, MAX_PATH);
SendMessage(
m_hwndStatusBar,
SB_SETTEXT,
0,
(LPARAM)szBuffer
);
if (_tcslen(szBuffer) > 0)
{
Check_Win(SetCurrentDirectory(szBuffer));
SendMessage(
m_hwndImageTable,
ITM_FILLFILEBYMASK,
(WPARAM)szBuffer,
0
);
int nImageCount = SendMessage(
m_hwndImageTable,
ITM_GETIMAGECOUNT,
0,
0
);
if (nImageCount > 0)
{
SetFocus(m_hwndImageTable);
}
}
break;
}
}
break;
}