C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 Отображение позиции курсора в Status Bar / StatusBar / Элементы управления

Отображение позиции курсора в Status Bar


Автор: Edward Duffy.

Во многих приложениях, в которых используются классы CEditView и CRichEditView , оногда бывает необходимо, чтобы пользователь знал местоположение курсора, как это сделано во многих текстовых редакторах.

Добавьте ячейку в таблицу строк(string table) ID_INDICATOR_CURPOS и описание "Ln %d, Col %d  ". Дополнительные пробелы сделают возможным отображение позиции курсора, если его значения перевалят за 100. Добавьте ID_INDICATOR_CURPOS в Ваш массив индикаторов (indicators[] array) в файле MainFrm.cpp. В карте сообщений, в файле объявлений для класса CMainFrame, добавьте следующее объявление функции:

afx_msg void OnUpdateCurPosIndicator(CCmdUI *pCmdUI);
  • Теперь в фактической карте сообщений, в файле MainFrm.cpp добавьте следующий макро-вызов:
    ON_UPDATE_COMMAND_UI(ID_INDICATOR_CURPOS, 
                         OnUpdateCurPosIndicator)
    
  • И в заключении, создайте функцию в файле MainFrm.cpp
    void CMainFrame::OnUpdateCurPosIndicator(CCmdUI *pCmdUI)
    {
     CString strCurPos;
     int nLineNum, nColNum;
     int nSelStart, nSelEnd;
    
     // Вам понадобится получать указатель
     // на елемент редактирования(edit control) в окне просмотра
     m_wndEditCtrl->GetSel(nSelStart, nSelEnd);  
                                                      
     nLineNum = m_wndEditCtrl->LineFromChar(nSelStart);
     
     nColNum = nSelStart - m_wndEditCtrl->LineIndex(nLineNum);
    
     strCurPos.Format(ID_INDICATOR_CURPOS, 
                      nLineNum+1, 
                      nColNum+1);
     
     m_wndStatusBar.SetPaneText(
      m_wndStatusBar.CommandToIndex(ID_INDICATOR_CURPOS), 
      strCurPos);
    }
    

    Downloads

    Скачать демонстрашку - 38 Kb
    Скачать исходник - 2 Kb