|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » вопрос по VC++ 7. как отобразить выделенный текст в строке состояния? |
|
вопрос по VC++ 7. как отобразить выделенный текст в строке состояния?
|
Новый участник Сообщения: 10 |
Профиль | Отправить PM | Цитировать подскажите, пожалуйста, как отобразить выделенный текст в строке состояния? создаю проект MFC Application, базовый класс указываю CRichEdit. |
|
Отправлено: 20:27, 24-01-2005 |
Старый параноик Сообщения: 2423
|
Профиль | Отправить PM | Цитировать RichTextBox-> events-> SelectionChanged (This event is sent when the selection changes) -> StatusBar-> setText
|
Отправлено: 09:13, 25-01-2005 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать сгенерировал я обработчик CRichView::OnEnSelchange() на сообщение EN_SELCHANGE. а как сделать, что бы этот обработчик отображал текст на строке состояния?
в классе CMainFrm существет член m_wndStatusBar типа CStatusBar, он же является строкой состояния, но как к нему подступиться в обработчике CRichView::OnEnSelchange()? |
Отправлено: 11:23, 25-01-2005 | #3 |
Старый параноик Сообщения: 2423
|
Профиль | Отправить PM | Цитировать В примитиве - через родителя CRichView (CMainFrm или кто там это будет) CRichView->(CMyView)parent->wndStatusBar->setText(strWhat)
|
Отправлено: 13:08, 25-01-2005 | #4 |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать вы имеете в виду через указатель на общего родителя?
|
|
Отправлено: 08:34, 26-01-2005 | #5 |
Старый параноик Сообщения: 2423
|
Профиль | Отправить PM | Цитировать ThereIsNoName
Да. Но я думаю, что ещё проще вот что: Ведь это родитель CMainFrm (наверняка) получает и обрабатывает OnEnSelchange, случившийся у CRichView? Ну и пусть сразу же спросит у него текст из выделения, а потом выставит в свой wndStatusBar. Ранее же (про общего родителя) я имел в виду немного другой случай: если Вы делаете абстрактный класс CRichView, который неизвестно к какому CMainFrm будет относится (Вы не знаете даже имя класса CMainFrm - CMyMainFrm, CCoolMainFrm и т.д.), то он сам (CRichView) может делать _сам_себе_ обработку своего же OnEnSelchange, а к родителю обращатся (с предварительной проверкой, является ли родитель классом, унаследованным от CMainFrm) как к обычному CMainFrm простым приведением типа. Короче, решений много |
Отправлено: 09:06, 26-01-2005 | #6 |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать Ведь это родитель CMainFrm (наверняка) получает и обрабатывает OnEnSelchange, случившийся у CRichView?
это хорошее решение, но где это посмотреть, что CMainFrm обрабатывает OnEnSelchange? |
Отправлено: 13:21, 26-01-2005 | #7 |
Старый параноик Сообщения: 2423
|
Профиль | Отправить PM | Цитировать Я не совсем понима, в чём проблема-то?
Пример. Делаем mfc-проект, диалоговый. На диалог кладём richedit. Заходим в класс-визард. Там выбираем IDC_RICHEDIT1 и говорим, что будем обрабатывать его EN_CHANGE. На тут же создают: void CTestDlg::OnChangeRichedit1() { // TODO: If this is a RICHEDIT control, the control will not // send this notification unless you override the CDialog::OnInitDialog() // function and call CRichEditCtrl().SetEventMask() // with the ENM_CHANGE flag ORed into the mask. // TODO: Add your control notification handler code here } Можно отследить, что и где прописывает класс-визард при этом. А именно он делает: BEGIN_MESSAGE_MAP(CTestDlg, CDialog) //{{AFX_MSG_MAP(CTestDlg) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_EN_CHANGE(IDC_RICHEDIT1, OnChangeRichedit1) <------------ в имплементейшене //}}AFX_MSG_MAP END_MESSAGE_MAP() Что не понятно? |
Отправлено: 14:20, 26-01-2005 | #8 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Заменить текст в строке внутри символов <> | FlatX007 | AutoIt | 2 | 03-09-2009 22:14 | |
Прочее - Как настроить выделенный инет на два компа? | sergant138 | Сетевые технологии | 11 | 01-09-2009 13:28 | |
Как отобразить картинку по ссылке не в IE? | Twix1124 | AutoIt | 1 | 30-05-2009 11:59 | |
MySQL - MYSQL - как отобразить текст с переносами? | alexa___ | Программирование и базы данных | 2 | 11-03-2009 14:06 | |
Вопрос по командной строке | Homer_xxl | Microsoft Windows 95/98/Me (архив) | 6 | 02-04-2007 14:10 |
|