27.11.2014 Views

НЕСЛУЧАЙНО CUDA ИДЕМ? phpMyAdmin - Xakep Online

НЕСЛУЧАЙНО CUDA ИДЕМ? phpMyAdmin - Xakep Online

НЕСЛУЧАЙНО CUDA ИДЕМ? phpMyAdmin - Xakep Online

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

++++<br />

++++<br />

++++<br />

++++<br />

++++<br />

++++<br />

++++<br />

++++<br />

++++<br />

++++<br />

++++<br />

++++<br />

>> coding<br />

когда главное окно свернуто? Да, ты можешь поступить, как я говорил<br />

в самом начале статьи (сделать ProgressBar), но куда прикольней (и<br />

симпатичней) решить эту задачу с помощью динамического генерирования<br />

иконок. Говоря проще, на каждый процент ты должен создавать<br />

иконку, в которой в качестве изображения будет присутствовать нужная<br />

цифра. Код в рамках статьи я приводить не буду; если сам не справишься<br />

(что вряд ли), то загляни в исходники моего проекта на нашем DVD.<br />

THUMBBUTTONS<br />

ОЛЕГ ПРИДЮК<br />

/ AZANITO@GMAIL.COM /<br />

Наведи курсор грызуна на запущенный (и свернутый) проигрыватель<br />

Windows Media Player и ты увидишь маленькое окошко с кнопками,<br />

позволяющими управлять состоянием проигрывания мультимедийного<br />

контента. У Media Player в этом окне доступны три кнопки — Play,<br />

Куда податься<br />

телефонному КОДЕРУ?<br />

Next, Previous. В своем приложении ты можешь не придерживаться<br />

таких ограничений и создать до семи кнопок. Больше создать, увы,<br />

не получится; это ограничение наложено самой Windows. Ну, нельзя,<br />

так нельзя! Не будем расстраиваться по пустякам, а лучше попробуем<br />

создать приложение, демонстрирующее эту возможность.<br />

Как и следует ожидать, главным нашим помощником будет уже полюбившаяся<br />

библиотека. Создавай новый проект и вновь подключай<br />

Полный к нему vistabridge гид и Windows по 7 DesktopIntegration. мобильным Для этого платформам примера для программиста<br />

нам не потребуются никакие элементы управления, поэтому смело<br />

переходи в редактор кода и потихонечку начинай перебивать содержи-<br />

Тот мое врезки факт, с говорящим что названием. зарабатывать космокредиты на кодинге под мобилы<br />

Все кнопки такого вида (ThumbButtons) создаются при помощи<br />

объекта-контейнера сомнений — ThumbButtonManager не вызывает. и объекта Именно поэтому программистов<br />

SHUTDOWN<br />

нелегко,<br />

ThumbButton. Именно поэтому в самом начале третьего листинга<br />

я Symbian, описываю два приватных iPhone, поля — myThumbButton BlackBerry, и Windows Mobile, Android и других<br />

для<br />

myThumbButtonManager. Дальше от нас требуется переопределить<br />

метод WndProc (вспомни, платформ мы уже проделывали почтенно такой трюк) зовут девелоперами. А когда зовут<br />

мобильных<br />

и сделать в нем проверку на сравнение очередного сообщения с тека, которую мы с тобой сегодня использовали — лишнее тому<br />

Windows7Taskbar.TaskbarButtonCreatedMessage. — обещают много платить Если за результат хорошую работу. Может и тебе пора<br />

— истина, то нужно выполнить проверку на «созданность» экземпляра<br />

влиться объекта ThumbButtonManager. в стройные Далее ряды действуем воинов в зави-<br />

мобильного R&D?<br />

симости от ситуации. В случае уже проведенной инициализации<br />

переменной myThumbButtonManager — пропускаем вызов метода<br />

CreateThumbButtonManager() и переходим сразу к созданию кнопки.<br />

Каждая новая кнопка создается вызовом метода CreateThumbButton()<br />

объекта типа ThumbButtonManager. Для успешной отработки методу<br />

требуется передать три параметра:<br />

1. Id — числовой идентификатор кнопки. Я не заморачиваюсь и передаю 1.<br />

2. Icon — иконка для кнопки. В этом параметре я указываю this.Icon, то<br />

есть, по сути, устанавливаю в качестве иконки, основную иконку нашего<br />

приложения.<br />

3. ToolTip — текст подсказки.<br />

Толку от безжизненной кнопки немного, а раз так, неплохо было бы<br />

забиндить обработчик события Clicked. Для этого описываем делегат.<br />

В своем примере я просто вызываю метод Show класса MessageBox.<br />

Говоря другими словами, при каждом нажатии на кнопку у меня будет<br />

появляться окно с текстом «Test button».<br />

После описания действия кнопки ее необходимо добавить в наш<br />

ThumbButtonManager. Эта процедура выполняется посредством вызова<br />

метода AddThumbButtons. Из параметров ему нужно передать<br />

объект типа ThumbButton.<br />

Можно считать, что пример полностью готов. Все, что остается: намекнуть<br />

ThumbButtonManager, что обрабатывать сообщения теперь<br />

— его прямая обязанность. Именно это я и делаю, вызвав метод<br />

DispatchMessage.<br />

На этом торжественном моменте третий листинг подошел к концу, и<br />

настало время переходить к разбору полетов. Попробуй запустить<br />

созданное приложение и подвести к его иконке курсор мыши. Если ты<br />

не допустил ошибок, то увидишь примерно такую же картинку, как на<br />

рисунке.<br />

Обычно принято ругать Microsoft за кривизну продуктов и ухахатываться<br />

над допущенными «детскими» ошибками. Но я хотел бы,<br />

наоборот, похвалить за то, что еще до выхода финального релиза<br />

Windows 7 у нас с тобой есть возможность поюзать все новые фишки<br />

системы и реализовать их поддержку в своих программах. Библио-<br />

подтверждение. Кроме того, имеется еще и SDK, который содержит<br />

кучу примеров и информации — фактически все, что только может потребоваться<br />

Windows-разработчику. Это реально круто, и я надеюсь,<br />

что в будущем компания будет придерживаться такого пути. Тебе,<br />

приятель, я хочу пожелать удачи в программировании. Ни в коем случае<br />

не теряй времени и не отставай от прогресса. Уже сейчас начинай<br />

готовить версию своих мега-проектов для Windows 7. Тем более, для<br />

этого есть все необходимое. Если с чем-то не разберешься, — пиши<br />

мне. С удовольствием постараюсь помочь.z<br />

++++<br />

ВИД ИКОНКИ<br />

ТИП СОСТОЯНИЯ<br />

++++<br />

Normal<br />

++ ++<br />

++++<br />

Paused<br />

++++<br />

Indeterminate<br />

++++<br />

Error<br />

++++<br />

098<br />

XÀÊÅÐ 07 /127/ 09

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!