Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.69/26: Рейтинг темы: голосов - 26, средняя оценка - 4.69
102 / 86 / 5
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
1

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

05.05.2012, 18:15. Показов 5376. Ответов 31
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Хочу сделать типо календарь/организатор/часы.
Но надо чтоб он "висел" на рабочем столе.
Можно ли такое сделать чтоб было как в Windows 7??
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.05.2012, 18:15
Ответы с готовыми решениями:

Календарик на рабочий стол в C++/WinAPI
Вот сижу делаю календарик как в windows 7 столкнулся с проблемой: как прикрепить его к рабочему...

Рабочий стол
После перезагрузки значки на рабочем столе перемещаются, как сделать так, чтобы они оставались там...

Рабочий Стол!
Доброе Время Суток! Дамы И Господа :) У Меня Такой Вопрос! Почему Нету Ярлыков На Рабочем Столе И...

3D рабочий стол?
Как поставить 3D рабочий стол????

31
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
05.05.2012, 19:00 2
ЧТо значит висел?
Прилепи форму со стилем "без бордюров"
Я в свое время еще кнопочки опций как у гаджетов приделовал
Миниатюры
Календарик на рабочий стол в C++/WinAPI  
0
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
05.05.2012, 19:23 3
Avazart
Гаджеты на рабочий стол win 7 можно на C++ писать?
Я нашел только как делать гаджет как "сайт" с помощью html, css, xml
http://msdn.microsoft.com/en-u... s.85).aspx

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

Avazart,
спасибо буду пробовать
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
05.05.2012, 19:34 5
Я писал на Builder-e, но думаю на WinApi не проблема обычную форму забабахать без бордюров и кнопок
Насчет того как оно из нутри сделано не узнавал самому интересно...
Кстати кнопки там липил на основе прозрачности формы, не знаю как с этим в XP
0
500 / 474 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
05.05.2012, 22:15 6
Цитата Сообщение от Avazart Посмотреть сообщение
на основе прозрачности формы, не знаю как с этим в XP
Всё нормально так же как и Win 7
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
05.05.2012, 22:18 7
Да поидее резать можно и регинами
0
102 / 86 / 5
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
06.05.2012, 17:14  [ТС] 8
Щас пробую делать.
Только слепил календарик и форму
а как можно прилепить к рабочему столу ??
оно должно быть дочерним окном от стола??

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

Добавлено через 3 часа 32 минуты
апапап
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
06.05.2012, 17:32 9
как его прикрепить к рабочему столу
Да по мойму он и так держаться должен...не отваливаясь
Гаджеты висят как обычные окна.
Только их нельзя сверуть и окна отображаются панели задач, ну и рализовано прилипание к краям экрана, перетаскиваниее за весь гаджет...
Что значит прикрепить? В чем проблема?
0
102 / 86 / 5
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
06.05.2012, 17:55  [ТС] 10
1. Я убираю рамку ил заголовок через WS_POPUP но тогда окно не перемещается
2. Если нажать свернуть все окна то оно сворачивается
Как можно отменить сворачивание?
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
06.05.2012, 18:11 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, но думаю пригодится
1
102 / 86 / 5
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
06.05.2012, 19:16  [ТС] 12
первое работает а второе немогу сделать
нашол стиль окна WS_EX_TOPMOST
но тогда окно не сворачивается совсем и просто стоит поверх всех окон а мне надо токо чтоб на рабочем столе

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

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


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

Добавлено через 32 минуты
помогите!
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
06.05.2012, 20:11 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;
   }
0
102 / 86 / 5
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
06.05.2012, 20:22  [ТС] 14
не работает...
наверное надо делеать все время перерисовку
щас попробую делать таймером...
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
06.05.2012, 20:26 15
Не срабатывает когда фокус на рабочем столе.
Таймер - коряво, ненужный загруз проца
0
102 / 86 / 5
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
06.05.2012, 20:30  [ТС] 16
ага..

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

но у меня после того когда проходит где то минута - календарик зависает и начинает перерисоваватся весь рабочий стол
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
06.05.2012, 20:36 17
А что такое вообще L"Progman"
0
102 / 86 / 5
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
06.05.2012, 20:39  [ТС] 18
а так то работает супер!

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

Добавлено через 46 секунд
или название рабочего стола
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
06.05.2012, 20:41 19
Рабочий стол это GetDesktopWindow(). И как я понял он и так родитель всех окон

http://www.firststeps.ru/mfc/winapi/r.php?1
0
102 / 86 / 5
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
06.05.2012, 20:52  [ТС] 20
ну тогжа незнаю
0
06.05.2012, 20:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.05.2012, 20:52
Помогаю со студенческими работами здесь

Рабочий стол
здравствуйте уже далеко не 1-й раз наблюдаю такой баг: включаю компьютер, проходят некоторые...

Рабочий стол
Как мне прописать в программе путь до рабочего стола?

Рабочий стол
Здравствуйте! при создавании или сохранении объектов на рабочий стол они копируются. причем,удаляя...

Рабочий стол
у меня проблема когда я нажимаю мой компьютер через пуск и его переносить вправую сторону...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru