Как в SDI-app (Explorer-style) выделить что-либо из списка
От: _Stash Россия  
Дата: 23.05.03 12:38
Оценка:
Короче, есть 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. я с указателями не фига не умею работать — научите пожалуйста
Re: Как в SDI-app (Explorer-style) выделить что-либо из спис
От: Patalog Россия  
Дата: 24.05.03 10:36
Оценка:
Здравствуйте, _Stash, Вы писали:

[]

Может дело в отсутствии LVS_SHOWSELALWAYS?

ЗЫ. Насчет указателей — задавайте более конкретные вопросы. Причем лучше пройдите в C/C++
Почетный кавалер ордена Совка.
Re: Как в SDI-app (Explorer-style) выделить что-либо из спис
От: reptile  
Дата: 24.05.03 19:59
Оценка:
AfxGetApp()->m_pMainWnd — это указатель на главное окно приложения.

На сколько я понимаю у тебя картина такая:

Имеется главное окно, в нем слева список и справа список, но как ты их создаешь. Покажи.
Являются ли они членами класса CMainFrame. Вот то окно, которое содержит эти списки может и является главным окном приложения. Но если и оно является каким то "видом", то все сложней, короче опиши.

Так вот если у тебя все просто и класс главного окна CMainFrame выглядет так

class CMainFrame : public CFrameWnd {
{...}
public:
CLeftView List1;
{...}
}

то можешь написать так

CMainFrame *pMainWnd = (CMainFrame*)AfxGetApp()->m_pMainWnd;
CLeftView *pLV = &pMainWnd->List1;
и дальше твори, но если у тебя все происходит через Document/View архитектуру, то все сложней. Ну об этом потом, ты бы по кокретней. Укажи как создаешь проект. Тогда и помогут.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.