Форум программистов, компьютерный форум CyberForum.ru

Календарик на рабочий стол в C++/WinAPI - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 4.75
Taras_Z
 Аватар для Taras_Z
100 / 84 / 2
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
05.05.2012, 18:15     Календарик на рабочий стол в C++/WinAPI #1
Хочу сделать типо календарь/организатор/часы.
Но надо чтоб он "висел" на рабочем столе.
Можно ли такое сделать чтоб было как в Windows 7??
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.05.2012, 18:15     Календарик на рабочий стол в C++/WinAPI
Посмотрите здесь:

C++ Календарик у графическом режиме
C++ Не рабочий merge()
C++ как создать стол с картами си++
удаленный рабочий стол C++
C++ Рабочий стол
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Avazart
 Аватар для Avazart
6893 / 5133 / 250
Регистрация: 10.12.2010
Сообщений: 22,561
Записей в блоге: 17
05.05.2012, 19:00     Календарик на рабочий стол в C++/WinAPI #2
ЧТо значит висел?
Прилепи форму со стилем "без бордюров"
Я в свое время еще кнопочки опций как у гаджетов приделовал
Миниатюры
Календарик на рабочий стол в C++/WinAPI  
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
05.05.2012, 19:23     Календарик на рабочий стол в C++/WinAPI #3
Avazart
Гаджеты на рабочий стол win 7 можно на C++ писать?
Я нашел только как делать гаджет как "сайт" с помощью html, css, xml
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx

Вы сами разбирались как делать на C++ или вы где прочитали? Если второе, то не могли бы ссылку дать?
Taras_Z
 Аватар для Taras_Z
100 / 84 / 2
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
05.05.2012, 19:31  [ТС]     Календарик на рабочий стол в C++/WinAPI #4
мне на XP а не на Win 7
я не думаю что в етом есть разница

Avazart,
спасибо буду пробовать
Avazart
 Аватар для Avazart
6893 / 5133 / 250
Регистрация: 10.12.2010
Сообщений: 22,561
Записей в блоге: 17
05.05.2012, 19:34     Календарик на рабочий стол в C++/WinAPI #5
Я писал на Builder-e, но думаю на WinApi не проблема обычную форму забабахать без бордюров и кнопок
Насчет того как оно из нутри сделано не узнавал самому интересно...
Кстати кнопки там липил на основе прозрачности формы, не знаю как с этим в XP
Игорь с++
 Аватар для Игорь с++
429 / 452 / 15
Регистрация: 26.01.2011
Сообщений: 2,029
05.05.2012, 22:15     Календарик на рабочий стол в C++/WinAPI #6
Цитата Сообщение от Avazart Посмотреть сообщение
на основе прозрачности формы, не знаю как с этим в XP
Всё нормально так же как и Win 7
Avazart
 Аватар для Avazart
6893 / 5133 / 250
Регистрация: 10.12.2010
Сообщений: 22,561
Записей в блоге: 17
05.05.2012, 22:18     Календарик на рабочий стол в C++/WinAPI #7
Да поидее резать можно и регинами
Taras_Z
 Аватар для Taras_Z
100 / 84 / 2
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
06.05.2012, 17:14  [ТС]     Календарик на рабочий стол в C++/WinAPI #8
Щас пробую делать.
Только слепил календарик и форму
а как можно прилепить к рабочему столу ??
оно должно быть дочерним окном от стола??

Добавлено через 2 часа 35 минут
помогите!
как его прикрепить к рабочему столу
если модно пример или ссылку

Добавлено через 3 часа 32 минуты
апапап
Avazart
 Аватар для Avazart
6893 / 5133 / 250
Регистрация: 10.12.2010
Сообщений: 22,561
Записей в блоге: 17
06.05.2012, 17:32     Календарик на рабочий стол в C++/WinAPI #9
как его прикрепить к рабочему столу
Да по мойму он и так держаться должен...не отваливаясь
Гаджеты висят как обычные окна.
Только их нельзя сверуть и окна отображаются панели задач, ну и рализовано прилипание к краям экрана, перетаскиваниее за весь гаджет...
Что значит прикрепить? В чем проблема?
Taras_Z
 Аватар для Taras_Z
100 / 84 / 2
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
06.05.2012, 17:55  [ТС]     Календарик на рабочий стол в C++/WinAPI #10
1. Я убираю рамку ил заголовок через WS_POPUP но тогда окно не перемещается
2. Если нажать свернуть все окна то оно сворачивается
Как можно отменить сворачивание?
Avazart
 Аватар для Avazart
6893 / 5133 / 250
Регистрация: 10.12.2010
Сообщений: 22,561
Записей в блоге: 17
06.05.2012, 18:11     Календарик на рабочий стол в C++/WinAPI #11
1. Я убираю рамку ил заголовок через WS_POPUP но тогда окно не перемещается.
C++
1
2
ReleaseCapture();
SendMessage(hWnd, WM_SYSCOMMAND, 0xF012, 0);//Перетаскивание не за заголовок
2.Как можно отменить сворачивание?
Перехватить сообщение SC_MINIMIZE и не передавать дальше
C++
1
2
3
4
  void __fastcall WMSysCommand(TWMSysCommand&);
   BEGIN_MESSAGE_MAP 
     MESSAGE_HANDLER(WM_SYSCOMMAND,TWMSysCommand,WMSysCommand); // Спрятать в панели задач
   END_MESSAGE_MAP(TComponent);
C++
1
2
3
4
5
6
7
//---------------------------------------------------------------------------
void __fastcall TFMyDeskTop::WMSysCommand(TWMSysCommand& Msg)
{       // Кнопка свернуть
if (Msg.CmdType == SC_MINIMIZE) Visible= false;
//else DefWindowProc(Handle,WM_SYSCOMMAND,Msg.CmdType,MAKELPARAM(Msg.XPos,Msg.YPos)); Это предача дальше
Msg.Result= 0;
}
Это примеры из моей проги на Builder-e, но думаю пригодится
Taras_Z
 Аватар для Taras_Z
100 / 84 / 2
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
06.05.2012, 19:16  [ТС]     Календарик на рабочий стол в C++/WinAPI #12
первое работает а второе немогу сделать
нашол стиль окна WS_EX_TOPMOST
но тогда окно не сворачивается совсем и просто стоит поверх всех окон а мне надо токо чтоб на рабочем столе

Добавлено через 2 минуты
НАШОЛ!!!!!!!

SetParent(MainWindowHandle, FindWindow(L"Progman", 0));


Добавлено через 2 минуты
Но есть еще проблемка
как я понимаю -теряется фокус
тоесть когда я нажимаю на свернуть все окна то видно только белий прямоугольник но надписи нету

Добавлено через 32 минуты
помогите!
Avazart
 Аватар для Avazart
6893 / 5133 / 250
Регистрация: 10.12.2010
Сообщений: 22,561
Записей в блоге: 17
06.05.2012, 20:11     Календарик на рабочий стол в C++/WinAPI #13
Сворачивание можно запретить
C++
1
2
3
4
5
6
7
8
9
10
11
12
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    int wmId, wmEvent;
    PAINTSTRUCT ps;
    HDC hdc;
 
    if(wParam==SC_MINIMIZE) return 0; // !!!! Не уверен что это корректно
 
    switch (message) 
    {
    case WM_CREATE:
        {
Но это не срабатывает при нажатии кнопки свернуть все окна.

Добавлено через 7 минут
Изменил ещё это и теперь вроде работает как надо
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
   HWND hWnd;
 
   hInst = hInstance; // Сохранить дескриптор экземпляра в глобальной переменной
 
   hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
      CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, FindWindow(L"Progman", 0), NULL, hInstance, NULL);//HWND hWndParent-дескриптор родительского или окна владельца
 
   if (!hWnd)
   {
      return FALSE;
   }
Taras_Z
 Аватар для Taras_Z
100 / 84 / 2
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
06.05.2012, 20:22  [ТС]     Календарик на рабочий стол в C++/WinAPI #14
не работает...
наверное надо делеать все время перерисовку
щас попробую делать таймером...
Avazart
 Аватар для Avazart
6893 / 5133 / 250
Регистрация: 10.12.2010
Сообщений: 22,561
Записей в блоге: 17
06.05.2012, 20:26     Календарик на рабочий стол в C++/WinAPI #15
Не срабатывает когда фокус на рабочем столе.
Таймер - коряво, ненужный загруз проца
Taras_Z
 Аватар для Taras_Z
100 / 84 / 2
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
06.05.2012, 20:30  [ТС]     Календарик на рабочий стол в C++/WinAPI #16
ага..

Добавлено через 3 минуты
сделал таймер
case WM_TIMER:
InvalidateRect(MainWindowHandle,NULL,FALSE);
break;

но у меня после того когда проходит где то минута - календарик зависает и начинает перерисоваватся весь рабочий стол
Avazart
 Аватар для Avazart
6893 / 5133 / 250
Регистрация: 10.12.2010
Сообщений: 22,561
Записей в блоге: 17
06.05.2012, 20:36     Календарик на рабочий стол в C++/WinAPI #17
А что такое вообще L"Progman"
Taras_Z
 Аватар для Taras_Z
100 / 84 / 2
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
06.05.2012, 20:39  [ТС]     Календарик на рабочий стол в C++/WinAPI #18
а так то работает супер!

Добавлено через 52 секунды
наверное хендл рабочего стола или как там
ну я незнаю

Добавлено через 46 секунд
или название рабочего стола
Avazart
 Аватар для Avazart
6893 / 5133 / 250
Регистрация: 10.12.2010
Сообщений: 22,561
Записей в блоге: 17
06.05.2012, 20:41     Календарик на рабочий стол в C++/WinAPI #19
Рабочий стол это GetDesktopWindow(). И как я понял он и так родитель всех окон

http://www.firststeps.ru/mfc/winapi/r.php?1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.05.2012, 20:52     Календарик на рабочий стол в C++/WinAPI
Еще ссылки по теме:

C++ Скрипты на рабочий стол
Сделал рабочий код C++
Задача про круглый стол (динамические массивы) C++

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

Или воспользуйтесь поиском по форуму:
Taras_Z
 Аватар для Taras_Z
100 / 84 / 2
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
06.05.2012, 20:52  [ТС]     Календарик на рабочий стол в C++/WinAPI #20
ну тогжа незнаю
Yandex
Объявления
06.05.2012, 20:52     Календарик на рабочий стол в C++/WinAPI
Ответ Создать тему
Опции темы

Текущее время: 15:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru