BOOL CChildFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/, CCreateContext* pContext)
{
VERIFY(m_wndSplitter.CreateStatic(this,
2, 1));
VERIFY(m_wndSplitter.CreateView(0, 0,
RUNTIME_CLASS(CeditviewView), CSize(1000, 1000), pContext));
VERIFY(m_wndSplitter.CreateView(1, 0,
RUNTIME_CLASS(CsplitterViewForm), CSize(1000, 1000), pContext));
return TRUE;
}
Проблема с окнами
Я всё сделал,что нужно,но проблема вот в чём:
Вид окна(дочернего)-CEditView.Когда открываем
текстовой файл, появляется окно с содержимым текстового файла,а также нужно,чтобы появлялось второе окно другого вида(CFormView).Я думаю,что нужно использовать CSplitterWnd,но у меня не получается.Хорошим примером программы является
MSDN(спрва окно,в котором задаёшь поисковую строку,а слева отображается результат.)Вот также и мне нужно в моём проекте.Помогите пожалуйста.
1 если тебе надо послать сообшение от дочернего окна в родительское можно так
CCheckListBox::GetOwner()->SendMessage( WM_LBUTTONUP, nFlags, p.x + p.y*65536);
, если тебе надо передовать строку(или что то ещё ) то можна сделать глоб. переменую (extend)
но в любом случае надо унаследовать класс, что бы можно было обрабатывать его сообшения.
А CSplitterWnd можна сделать при создания проекта или объяви его в MainFrame ::OnCreateClient , но я непонимаю интерфейс который ты задумал.
но лучше напиши подробнее. :)
Я рад,что ты заинтересовался.
Вобщем дело такое:Проект на MFC,MDI.Проект должен открывать(понимать)текстовые документы.При загрузке документа появляется сам документ плюс ещё два окна:одно из них окно вида CFormView,где расположен CEdit и CButton.В CEdit можно будет прописывать поисковую строку,и нажав на CButton появляется третье окно вида CListView,где показывается результат поска в режиме Report.
Окна распологаешь как хочешь.
Заранее спасибо!
1 необезательно создавать MDI можно просно немодальное диалоговое окно (можно создать того типа окна которое тебе больше подойдёт в плане красоты )там проше.для того чтобы получить текст введёный е CEdit в немодальном окне можно использовать функцию GetDlgItemText или чтото типа
таким образом у тебя есть текст поиска потом ищеш что тебе надо обьявляеш глобальную переменную вроде vector CString... ; и выводиш на
2 есть принципиальная разница между view и ctrl ?
если нет могу посоветовать использовать ctrl(для начала) выводиш туда найденое по средсвам DDX в потом обрабатываеш нажатие на item этого СListCtrl
после чего выводиш нужный топик на основной вид
спашивай конкретно :) я же не телепат:)
Цитата:
Originally posted by Fevzi
Мне нужно на Visual C++6.0 создать проект MDI.
Я всё сделал,что нужно,но проблема вот в чём:
Вид окна(дочернего)-CEditView.Когда открываем
текстовой файл, появляется окно с содержимым текстового файла,а также нужно,чтобы появлялось второе окно другого вида(CFormView).Я думаю,что нужно использовать CSplitterWnd,но у меня не получается.Хорошим примером программы является
MSDN(спрва окно,в котором задаёшь поисковую строку,а слева отображается результат.)Вот также и мне нужно в моём проекте.Помогите пожалуйста.
Мне нужно на Visual C++6.0 создать проект MDI.
Я всё сделал,что нужно,но проблема вот в чём:
Вид окна(дочернего)-CEditView.Когда открываем
текстовой файл, появляется окно с содержимым текстового файла,а также нужно,чтобы появлялось второе окно другого вида(CFormView).Я думаю,что нужно использовать CSplitterWnd,но у меня не получается.Хорошим примером программы является
MSDN(спрва окно,в котором задаёшь поисковую строку,а слева отображается результат.)Вот также и мне нужно в моём проекте.Помогите пожалуйста.
Расскажу, потому что помню, как сложно было сделать самое первое окно со splitter'ом.
Вам надо действовать так.
1. Создать два класса view: один из CFormView, другой из CEditView.
2. В CChildFrame::OnCreateClient() сделать нечто вроде
Код:
Код:
void CsplitterViewForm::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
ResizeParentToFit();
}
{
CFormView::OnInitialUpdate();
ResizeParentToFit();
}
Ну, а дальше доделать детали, и всё будет работать и выглядеть примерно так, как на прилагаемой картинке.
Удачи.