1. Работа
с переменными в других процессах
Приведенный в статье пример показывает, как можно получить название всех кнопок
Таскбара.
2. Как
программно управлять CD-ROM'ом?
В статье рассказывается о том, как програмно можно открывать или закрывать
CD-ROM и многое другое.
3. Копирование
текста в буфер обмена
Приведенный в статье пример демонстрирует помещение текста в буфер обмена. В
данном случае, текстовые данные берутся из обычной переменной CString.
4. Элемент
управления CTreeCtrl
Кроме возможности выводить записи последовательных списков при помощи таких
элементов, как список или просмотр списка, Windows предоставляет возможность
отображения (и управления) списков, организованных по принципу дерева.
5. Шрифты
В статье рассказывается об использовании шрифтов в MFC. На примере показано
создание собственного шрифта.
6. Класс
CRecordView
Объекты этого класса предоставляют для изображения записей базы данных в
элементах управления форму, которая непосредственно соединена с объектом
CRecordset.
7. Поиск
и сортировка записей
В статье описаны функции поиска и сортировки в элементе управления ListCtrl.
8. Меню
и акселераторы
В этой статье я вас ознакомлю с классом CMenu. С помощью этого класса можно
создавать меню в MFC приложениях. Так же будет рассмотрен вопрос об
использовании акселераторов.
9. Разделяемая
память в динамической библиотеке
В этой статье рассмотрен вопрос о разделяемой памяти в динамической библиотеке.
Также приведенные примеры демонстрируют примеры использования общей памяти.
10. Битовые
образы
В операционной системе Windows рассматриваются два типа растровых изображений:
аппаратно-зависимые и аппаратно-независимые. В этой статье рассматриваются
аппаратно-зависимые изображения и их поддержку в библиотеке MFC.
Класс CUsefulSplitterWnd
(расширение класса CSplitterWnd)
Класс CUsefulSplitterWnd расширяет класс CSplitterWnd. А именно этот
класс дает следующие возможности:
Блокировка изменения размеров границ между представлениями. То есть нельзя
будет изменять размер представлений.
// блокировка использую функцию LockBar (TRUE)
m_wndSplitter.LockBar(TRUE);
// и разблокировка, используя LockBar (FALSE)
m_wndSplitter.LockBar(FALSE);
Второй возможностью является возможность изменять представления в любой ячейке
CSplitterWnd при помощи функции ReplaceView().
// чтобы изменить представление в ячейке надо использовать функцию ReplaceView
m_wndSplitter.ReplaceView(0, 1, RUNTIME_CLASS(CForm1), CSize(100 100));
CForm1 это класс представления. Им может быть любой класс, к примеру,
CListView, CTreeView, CHtmlView, CFormView и т. д.
Далее мы расскажем, какие функции помогают в реализации первой возможности.
Итак, для реализации надо обработать сообщения ON_WM_LBUTTONDOWN(),
ON_WM_MOUSEMOVE(), ON_WM_SETCURSOR(). Вот сам код:
Переменная типа BOOL m_bBarLocked устанавливает свое значение с помощью функции
LockBar. Об этой функции уже было рассказано выше.
Теперь давайте рассмотрим функцию ReplaceView.
BOOL CUsefulSplitterWnd::ReplaceView(int row, int col,CRuntimeClass * pViewClass, SIZE size)
{
CCreateContext context;
BOOL bSetActive;
if ((GetPane(row,col)->IsKindOf(pViewClass))==TRUE)
return FALSE;
// Get pointer to CDocument object so that it can be used in the creation
// process of the new view
CDocument * pDoc= ((CView *)GetPane(row,col))->GetDocument();
CView * pActiveView=GetParentFrame()->GetActiveView();
if (pActiveView==NULL || pActiveView==GetPane(row,col))
bSetActive=TRUE;
else
bSetActive=FALSE;
// set flag so that document will not be deleted when view is destroyed
pDoc->m_bAutoDelete=FALSE;
// Delete existing view
((CView *) GetPane(row,col))->DestroyWindow();
// set flag back to default
pDoc->m_bAutoDelete=TRUE;
// Create new view
context.m_pNewViewClass=pViewClass;
context.m_pCurrentDoc=pDoc;
context.m_pNewDocTemplate=NULL;
context.m_pLastView=NULL;
context.m_pCurrentFrame=NULL;
CreateView(row,col,pViewClass,size, &context);
CView * pNewView= (CView *)GetPane(row,col);
if (bSetActive==TRUE)
GetParentFrame()->SetActiveView(pNewView);
RecalcLayout();
GetPane(row,col)->SendMessage(WM_PAINT);
return TRUE;
}
Первый и второй параметры указывают на ячейку, в которой бум менять
представление. Третий параметр является указателем на новое представление, на
которое будем менять старое представление. Четвертый параметр задает
минимальные размеры ячейки. Функция возвращает TRUE, если выполнена удачно, в
противном случае возвратится значение FALSE.
Ну, вот, пожалуй, и все. О более подробном применении этого класса вы сможете
увидеть из исходников идущих со статьями.
Эта книга посвящена библиотеке MFC, a не только
платформе .NET. Весь материал разбит на разделы, освещающие отдельные
направления разработки, объединенные в логически упорядоченные категории, что
позволит новичкам получить систематизированные знания, читая книгу шаг за
шагом, а квалифицированный программист легко найдет интересующие разделы.
Каждая глава начинается вводным разделом, содержащим краткую информацию по
обсуждаемой теме, а затем следует пример довольно простого демонстрационного
приложения. Книга предназначена для программистов средней и высокой
квалификации.
"Visual C++.Net. Классика программирования" - книга,
необходимая как начинающему программисту, так и профессионалу, желающему
познакомиться с новыми возможностями последней версии наиболее популярной
системы программирования. Изучение этой книги не требует глубоких знаний языка
C++, однако предполагается знание основ языка С. Поэтапное изучение предмета
позволит человеку с любым уровнем начальных знаний о языке программирования C++
легко изучить самую современную его версию. Данная книга - не просто учебник по
языку программирования, это первый шаг в создании удобных, профессиональных
приложений, ориентированных на Internet.
Использование
Microsoft Visual C++ .NET. Специальное издание
Эта книга фокусирует внимание читателя на использовании
языка программирования Visual C++ при создании 32-разрядных Windows-приложений,
включая приложения баз данных, Internet-приложения и СОМ-приложения. Помимо
этого, здесь содержится описание технологии .NЕТ и способа применения языка
Visual C++ при создании .NЕТ-приложений, использующих базы данных,
взаимодействующих с Internet и т.д. Особое внимание автор книги уделяет
совместному использованию технологий .NЕТ и СОМ. Эта книга будет полезна как
начинающим, так и опытным программистам.
Портал
для Delphi программиста - Быстро развивающийся портал о
программирование на языке Pascal/Delphi. Статьи, исходники, компоненты,
справочники, мануалы, FaQ, программы.
Дружественные рассылки
Замечания и предложения отправляйте на E-Mail указанный ниже. С уважением
Ковязин Дмитрий (admin@p-lib.pp.ru).