Приложение с окном произвольной формы. Обнаружение некоторых характеристик компьютера
Если вам надоела классическая прямоугольная форма окон Windows, то постройте приложение с формой любых очертаний. Заготовку будущего окна можете создать в каком-либо графическом редакторе, например, Xara-X. Создаваемое изображение должно иметь фон в принципе любого, но одного цвета, например, белого. Область с выбранным цветом как раз впоследствии будет прозрачной на экране. Более того, эта область не будет принадлежать окну вашего приложения. Здесь вы будете наблюдать вид рабочего стола и чужих приложений, впрочем, если они к тому времени будут запущены. После того как изображение окна будет готово, экспортируйте его в формат BMP.
В среде C++ Builder откройте новый проект. Из вкладки Additional установите на форму компонент Image1. Воспользовавшись свойством Picture этого компонента, загрузите подготовленное вами изображение окна. Для свойства AutoSize установите значение true, после этого размеры поля Image1 автоматически сравняются с размерами загруженного изображения. После запуска проекта приложения на данном этапе вы обнаружите, что его окно по-прежнему будет иметь стандартную прямоугольную форму.
Для того чтобы лишняя для вас часть окна исчезла, необходимо сделать четыре шага. Во-первых, для компонента Form1 свойству TransparentColor (Прозрачный цвет) установите значение true. Во-вторых, свойству TransparentColorValue (Значение прозрачного цвета) установите значение clWhite (Белый). Таким образом, вы добьетесь, исчезновения некоторой части поля формы. Третьим шагом необходимо свойству Color задать значение clWhite. Четвертым шагом вы должны свойству BorderStyle придать значение bsNone, для того чтобы скрыть рамку окна. Но при этом исчезнут кнопки управления окном, и не будет возможности закрыть ваше приложение. Поэтому нужно предусмотреть другой способ закрытия приложения. Можно, например, сделать так чтобы приложение завершало свою работу при клике правой кнопкой мыши по любой части окна произвольной формы и при нажатии клавиши Esc. Как это осуществить вы уже знаете.
Теперь, когда приложение приобрело необходимую форму, наполните его содержанием. Можно, например, изготовить проигрыватель мультимедиа, описанный во втором уроке, но теперь в окне произвольной формы. Пусть это будет автомобиль, на котором расположите кнопки управления проигрывателем.
Будет хорошо, если ваши приложения станут открываться с заставки-окна сложной формы. Или построить приложение, которое будет информировать пользователя о тактовой частоте процессора, размере оперативной памяти, о размере винчестера. Как извлечь характеристики компьютера можно подсмотреть в исходниках на странице под названием Кладовка.
На этой странице вы видите примеры, как могут выглядеть окна Windows произвольной формы созданных вами приложений.
Для определения тактовой частоты процессора вашего компьютера необходимо будет сделать вставку на ассемблере. Показания будут обновляться каждые полсекунды.
void __fastcall TForm1::Timer2Timer(TObject *Sender)
{
double CPUSpeed(void);
{
DWORD dwTimerHi, dwTimerLo;
double dRes;
asm
{
DW 0x310F
mov dwTimerLo, EAX
mov dwTimerHi, EDX
}
Sleep (500);
asm
{
DW 0x310F
sub EAX, dwTimerLo
sub EAX, dwTimerHi
mov dwTimerLo, EAX
mov dwTimerHi, EDX
}
dRes = dwTimerLo/(1000.0*500);
Label1->Caption = FloatToStr(dRes) + " Mz";
Label2->Caption = "CPU";
}
}
Выбери лучшее! allbest |