Короче, есть MFC SDI-программа (стиля Windows-Explorer), левый класс список типа CListCtrl (simgle-selection) справа тоже список тока другого стиля, мне нужно чтобы при нажатии определенной клавиши справа выделялось что-либо слева(то что мне нужно), но фокус оставался справа, я делал так
типа
void CSkladNGSDIView::OnAccel32775()
{
CLeftView* pLeft = (CLeftView*) AfxGetApp()->m_pMainWnd;
pLeft->SelectList(2); // номер выделяемой строки
}
а сам SelectList
void CLeftView::SelectList(int num)
{
GetListCtrl().SetItemState(num, LVIS_SELECTED, LVIS_SELECTED);
}
я пытался и сразу менять из другого класса все равно ничего не получается, главное параметры верны а все равно ничего не выходит

сама функция описана как
public:
void MyDDX();
void SelectList(int num);
т.е. она не виртуальная
p.s. я с указателями не фига не умею работать — научите пожалуйста
Здравствуйте, _Stash, Вы писали:
[]
Может дело в отсутствии
LVS_SHOWSELALWAYS?
ЗЫ. Насчет указателей — задавайте более конкретные вопросы. Причем лучше пройдите в C/C++
AfxGetApp()->m_pMainWnd — это указатель на главное окно приложения.
На сколько я понимаю у тебя картина такая:
Имеется главное окно, в нем слева список и справа список, но как ты их создаешь. Покажи.
Являются ли они членами класса CMainFrame. Вот то окно, которое содержит эти списки может и является главным окном приложения. Но если и оно является каким то "видом", то все сложней, короче опиши.
Так вот если у тебя все просто и класс главного окна CMainFrame выглядет так
class CMainFrame : public CFrameWnd {
{...}
public:
CLeftView List1;
{...}
}
то можешь написать так
CMainFrame *pMainWnd = (CMainFrame*)AfxGetApp()->m_pMainWnd;
CLeftView *pLV = &pMainWnd->List1;
и дальше твори, но если у тебя все происходит через Document/View архитектуру, то все сложней. Ну об этом потом, ты бы по кокретней. Укажи как создаешь проект. Тогда и помогут.