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 руб./мес


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




 74 - Свой класс на основе базового / Диалоговые окна / Visual C++

Шаг 74 - Свой класс на основе базового

Добавим еще один класс наследник от нашего базового класса. Почему я там его назвал, не знаю, где-то видел похожую цветовую раскраску.

74_1.gif (2477 b)

Все, что нужно сделать - это перегружать функции рисования.

#include "CustomDrawDialog.h"

#define BASE_COLOR RGB(155,155,155)


class CLunixDialog : public CCustomDrawDialog  
{
public:
	CLunixDialog();
	virtual ~CLunixDialog();
	void DrawBottom(CRect cr,CDC *dc);
	void DrawLight(CRect cr,CDC *dc);
	void DrawLeft(CRect cr,CDC *dc);
	void DrawCaption(CRect cr,CDC *dc);

};

И реализация:

void CLunixDialog::DrawBottom(CRect cr,CDC *dc)
{
	CBrush tempBrush1;
	tempBrush1.CreateSolidBrush(BASE_COLOR);
	dc->FillRect(&cr,&tempBrush1);
}

void CLunixDialog::DrawLight(CRect cr,CDC *dc)
{
	CBrush tempBrush1;
	tempBrush1.CreateSolidBrush(BASE_COLOR);
	dc->FillRect(&cr,&tempBrush1);
}

void  CLunixDialog::DrawLeft(CRect cr,CDC *dc)
{
	CBrush tempBrush1;
	tempBrush1.CreateSolidBrush(BASE_COLOR);
	dc->FillRect(&cr,&tempBrush1);
}

void  CLunixDialog::DrawCaption(CRect cr,CDC *dc)
{
	CBrush tempBrush1;
	tempBrush1.CreateSolidBrush(BASE_COLOR);
	dc->FillRect(&cr,&tempBrush1);
}

В принципе очень удобно, мы уже ничего не должны знать и думать только о том, как сделать отображение нужного прямоугольника. Осталось только наш класс применить. Подключаем описание.

/////////////////////////
// CTestPaintDlg dialog

#include "LunixDialog.h"

class CTestPaintDlg : public CDialog
.........

И используем:

void CTestPaintDlg::DrawWindowArea( BOOL b)
{
	CLunixDialog cl;
	cl.Draw(this); 
}

74_2.gif (2997 b)

При этом нет разницы, то ли диалог вызывается из программы, то ли это программа на базе диалогового окна. Необходимые OGX файлы в проекте.


Загрузить проект | | |
Автор Каев Артем.
[AD]