Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 08.01.2011
Сообщений: 4

Новые возможности Windows 7

14.04.2011, 22:14. Показов 1896. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Хочу использовать в своей программе новые возможности Windows 7. Но читая в интерене натыкаюсь то на обзорные статьи то на компоненты для C#. Кто то уже использовал?

Progress Bar, ThumbButtons, OverlayIcons, Windows manager, ThumbnailPreview, JumpLists

Вот нашел статейку, помогите перевести с Delphi

procedure TForm1.FormCreate(Sender: TObject);
var
DEnable: DWORD;
bmp: TBItmap;
begin
DEnable:= DWMNCRP_ENABLED;
If S_OK <>
DwmSetWindowAttribute(Handle,DWMWA_FORCE _ICONIC_REPRESENTATION,
@DEnable,SizeOf(DEnable));
then MessageBox(0,’Error’,0,0);

If S_OK <>
DwmSetWindowAttribute(Handle,DWMWA_HAS_I CONIC_BITMAP,
@DEnable,SizeOf(DEnable));
then MessageBox(0,’Error’,0,0);

Bmp:= TBitmap.Create;
Bmp.LoadFromFile('полный путь к нужной картинке');
If S_OK <>
DwmSetIconicThumbnail(Handle,Bmp.Handle, 0);
then MessageBox(0,’Error’,0,0);
end;
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.04.2011, 22:14
Ответы с готовыми решениями:

Новые возможности консоли CMD в Windows 10 Technical Preview
Windows 10: новые возможности и функции в командной строке Microsoft недавно представили предварительную версию Windows 10 для...

Новые возможности PHP5
Кто что знает о новых возможностях php5 Где бы что почитать (по-руски) А насчет mysql 4 версия есть, а mysql5?

Перенести новые возможности {custom} из 9.7 в 9.6
Собственно, вопрос в шапке, хотелось бы иметь новые возможности DLE 9.7 в 9.6 касательно тега {custom} Что и где надо изменить в движке...

3
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
15.04.2011, 03:24
что этот код должен делать ?
полный адрес источника этого огрызка кода ?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
DWORD DEnable;
Graphics::TBitmap *bmp;
bmp = new Graphics::TBitmap;
Bmp->LoadFromFile("полный путь к нужной картинке");
DEnable = DWMNCRP_ENABLED; // ?
 
if (S_OK != DwmSetWindowAttribute(Handle,DWMWA_FORCE_ICONIC_REPRESENTATION,
            &DEnable,sizeof(DEnable)) {
  ShowMessage("Ошибка");
}
if (S_OK != DwmSetWindowAttribute(Handle,DWMWA_HAS_ICONIC_BITMAP,
            &DEnable,SizeOf(DEnable));
  ShowMessage("Ошибка");
}
// Bmp:= TBitmap.Create;
if (S_OK != DwmSetIconicThumbnail(Handle,Bmp->Handle,0) {
  ShowMessage("Ошибка");
}
1
0 / 0 / 0
Регистрация: 08.01.2011
Сообщений: 4
15.04.2011, 11:30  [ТС]
Взято было от сюда delphiexpert.ru/view_lesson.php?id=86

Добавлено через 2 часа 30 минут
Нашел еще статейку на http://blog.karelia.ru/teran/?p=61

Начал переделывать на С++ но не все получилось, да еще и среды щас под рукой нет чтобы проверить.

Для управления состоянием и значением прогресса текущего действия, отображаемого на значке панели задачи приложения в СО windows 7 используются COM интерфейс ITaskBarList3 описанный в ShlObj.pas (Delphi2010).
Для использования данного функционала создадим новое приложение с одной формой MainForm, расположим на нем stateSelect (TRadioGroup) и progressBar (TTrackBar).
Для удобства опишем тип-запись TTaskState с полями имя-значение:

Delphi
1
2
3
4
type TTaskState = record
        name : string;
        value : byte;
     end;
C++
1
2
3
4
struct TTaskState {
String name;
unsigned char value;
};
и объявим массив констант для описания возможных значений состояний, отображаемых на панели задач.

Delphi
1
2
3
4
5
6
7
8
const
    taskStates : array [0..4] of TTaskState = (
            (name : 'TBPF_NOPROGRESS';    value : TBPF_NOPROGRESS),
            (name : 'TBPF_INDETERMINATE'; value : TBPF_INDETERMINATE),
            (name : 'TBPF_NORMAL';        value : TBPF_NORMAL ),
            (name : 'TBPF_ERROR';         value : TBPF_ERROR),
            (name : 'TBPF_PAUSED';        value : TBPF_PAUSED)
        );
C++
1
2
3
4
5
6
Const TTaskState taskState[5];
taskState[0] = {“TBPF_NOPROGRESS”,” TBPF_NOPROGRESS”};
taskState[1] = {“TBPF_INDETERMINATE”,”TBPF_INDETERMINATE”};
taskState[2] = {“TBPF_NORMAL”,”TBPF_NORMAL”};
taskState[3] = {“ TBPF_ERROR”,” TBPF_ERROR”};
taskState[4] = {“ TBPF_PAUSED”,” TBPF_PAUSED”};
В раздел private описания класса TMainForm добавим описание нужного интерфейса, переменные для хранения значений состояния и прогресса, а так же методы для изменения данных значений.

Delphi
1
2
3
4
5
6
7
8
private
    taskBarList : ITaskBarList3;
 
    fState : integer;
    fProgress : integer;
 
    procedure setTaskState(newState:integer);
    procedure setTaskProgress(newValue : integer);
C++
1
2
3
4
ITaskBarList3 taskBarList;
Int fState, fProgress;
Void setTaskState (int newState);
Void setTaskProgress (int newValue);
в разделе public объявим соответствующие свойства для управления состоянием и прогрессом.

Delphi
1
2
    property state : integer read fState write setTaskState;
    property progress : integer read fProgress write setTaskProgress;
в событии создания формы FormCreate создадим COM объект для работы с с панелью задач Windows (ITaskBarList), проверим поддерживает ли ОС требуемый нам интерфейс ITaskBarList3 и заполним stateSelect значениями из массива taskStates.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
procedure TMainForm.FormCreate(Sender: TObject);
var tbList : ITaskBarList;
    hr : HRESULT;
    state : TTaskState;
begin
    tbList := CreateComObject(CLSID_TaskBarList) as ITaskBarList;
    hr := tbList.QueryInterface(IID_ITaskBarList3,taskBarList);
    if hr <> S_OK then begin
        taskBarList := nil;
           tbList._Release;
    end;
 
    for state in TaskStates do
        stateSelect.Items.AddObject(state.name,TObject(state.value));
end;
В обработчике события OnChange stateSelect будем устанавливать состояние значка панели задач, в зависимости от выбранного пункта. Для этого определим обработчик события и метод записи свойства state следующим образом

Delphi
1
2
3
4
5
6
7
8
9
10
procedure TMainForm.StateSelectClick(Sender: TObject);
begin
    self.state :=  stateSelect.ItemIndex;
end;
 
procedure TMainForm.setTaskState(newState: Integer);
begin
    if assigned(taskBarList) then
        taskBarList.SetProgressState(handle,taskStates[newState].value);
end;
Установим значения min/max progressBar’a в 0/100 и опишем обработчик события изменения его значения, а также метод изменения значения свойства progress

Delphi
1
2
3
4
5
6
7
8
9
10
procedure TMainForm.progressBarChange(Sender: TObject);
begin
    self.progress := progressBar.Position;
end;
 
procedure TMainForm.setTaskProgress(newValue: Integer);
begin
    if assigned(taskBarList) then
        taskBarList.SetProgressValue(handle,newValue,100);
end;
0
0 / 0 / 0
Регистрация: 08.01.2011
Сообщений: 4
19.04.2011, 00:14  [ТС]
Вот нашел еще пару статеек, надо разобраться на выходных.
http://msdn.microsoft.com/en-us/gg465005
http://msdn.microsoft.com/en-us/gg465010
http://windowsteamblog.com/win... -bars.aspx
http://geekswithblogs.net/Jial... mples.aspx
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.04.2011, 00:14
Помогаю со студенческими работами здесь

ИТ-образование: кризис или новые возможности?
Подходит к концу 2008 год, наступает традиционное время итогов и прогнозов. Впрочем, нынешние итоги и прогнозы весьма специфические....

Нет возможности добавить новые данные
захожу в форму , нет возможность добавить новые данные. см. фото по таблице можно добавить данные и в форме лишь просмотреть можно. а...

Adself.ru - новые возможности для партнеров РСЯ
Информации много, попробую изложить ее лаконично. &lt;b&gt;Что было&lt;/b&gt; Самые оперативные выплаты в Яндекс.Деньги среди всех ЦОПов...

Каковы новые возможности mvc4 (в отличие от mvc3)
Добрый день! Подскажите пожалуйста какие нововведения появились в mvc4?

Сервис автоматизации Яндекс Директа - direct.seodroid.ru - новые возможности
Господа, около года назад мы презентовали наш сервис автоматизации Яндекс Директа За это время произошло много изменений и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru