Официальный сайт студ.городка НГТУ
Программирование и БД » [mfc]Вопросы по интерфейсу 

#1  17.09.06 22:43

[mfc]Вопросы по интерфейсу

в общем, создаю приложение MFC SDI, для CView базовым делаю CEditView
надо по нажатию кнопки разделить окно (горизонтально) на две части
и в нижней части запретить редактирование
догадыаюсь, что надо юзать CSplitterWnd
как это сделать?

Offline

#2  18.09.06 13:00

Re: [mfc]Вопросы по интерфейсу

В YourFrame::OnCreateClient(..)

Код::

	if (!m_wndSplitter.CreateStatic(this, 2, 1, WS_CHILD | WS_VISIBLE))
	{
		TRACE0("Failed to CreateStaticSplitter\n");
		return FALSE;
	}
	if (!m_wndSplitter.CreateView(0, 0,
		RUNTIME_CLASS(CUpperView), CSize(270, 0), pContext))
	{
		TRACE0("Failed to create first pane\n");
		return FALSE;
	}
	// add the second splitter pane - an output view in column 1
	if (!m_wndSplitter.CreateView(1, 0,
		RUNTIME_CLASS(CLowerView), CSize(0, 0), pContext))
	{
		TRACE0("Failed to create second pane\n");
		return FALSE;
	}
	SetActiveView((CView*)m_wndSplitter.GetPane(0, 0));

Offline

#3  18.09.06 18:12

Re: [mfc]Вопросы по интерфейсу

ну надо делать это не OnCreateClient, а по вызову пользователя, и точно так же возвращать окно к первоначальному виду
и как запретить редактирование, если в примере, который написал Мерзкий, классы будут потомками CEditView (хотя может предложите другое решение)

Offline

#4  18.09.06 18:53

Re: [mfc]Вопросы по интерфейсу

-"ну надо делать это не OnCreateClient, а по вызову пользователя, и точно так же возвращать окно к первоначальному виду" - что мешает создавать сплиттер по нажатию, а потом уничтожать?
-"и как запретить редактирование" - CEditView::GetEditCtrl()

Call GetEditCtrl to get a reference to the edit control used by the edit view.

и уже у CEdit'a есть метод SetModify(TRUE/FALSE)

Offline

#5  18.09.06 20:14

Re: [mfc]Вопросы по интерфейсу

Мерзкий написал(а):

и уже у CEdit'a есть метод SetModify(TRUE/FALSE)

если не ошибаюсь, то SetModify отмечает, что текст был изменен и требует сохранения

Offline

#6  18.09.06 21:04

Re: [mfc]Вопросы по интерфейсу

оффтоп:

как избавиться от такого косяка с отображением кириллицы при создании MFC диалога?

ftp://anonymousnew@begemot.hostel.nstu.ru/mfc.PNG


ftp://begemot.hostel.nstu.ru/upload/pix/mfc.PNG



ps: Visual C++ .NET 2003
пробовал выставлять в настройках Unicode, Multi-byte кодировки - не помогает.. подскажите че сделать нужно

Исправлено Fatboy (18.09.06 21:06)

Offline

#7  19.09.06 08:09

Re: [mfc]Вопросы по интерфейсу

simplex написал(а):

если не ошибаюсь, то SetModify отмечает, что текст был изменен и требует сохранения

Ага, виноват :(
SetReadOnly нужен

Offline

#8  19.09.06 13:25

Re: [mfc]Вопросы по интерфейсу

Мерзкий, CEdit'а на фрэйме нет, и надеюсь не будет
CAppView наследуется от CEditView, и вопрос был как в CEditView запретить редактирование, не перехватывая клавиатуру

Offline

#9  19.09.06 13:58

Re: [mfc]Вопросы по интерфейсу

simplex написал(а):

CAppView наследуется от CEditView, и вопрос был как в CEditView запретить редактирование, не перехватывая клавиатуру

Читай внимательнее: у CEditView есть контрол, CEdit. Чтобы получить ссылку на него, используй GetEditCtrl и будет тебе счастье

Offline

#10  19.09.06 14:00

Re: [mfc]Вопросы по интерфейсу

Fatboy написал(а):

ps: Visual C++ .NET 2003
пробовал выставлять в настройках Unicode, Multi-byte кодировки - не помогает.. подскажите че сделать нужно

1. В редакторе ресурсов выбери ресурс твоего диалога
2. в свойствах смени у него язык с english на russian (после этого в редакторе ты будешь видеть русские буквы, но в приложении казябрины)
3. все надписи необходимо написать заново, после этого и в приложении они будут отображаться нормально

Offline

#11  19.09.06 14:47

Re: [mfc]Вопросы по интерфейсу

О!
действительно невнимательно читаю
пасиб

Offline

Программирование и БД » [mfc]Вопросы по интерфейсу 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.867 сек.
Выполнено 14 запросов.