Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Программа всегда на рабочем столе, Типа календаря, заметок... 
:(
    Опции темы
Stesh_ka
Дата 21.7.2006, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 12.8.2003

Репутация: нет
Всего: нет



Наверное не слишком ёмкое название темы, может ето как-то по-другому называется, но я не знаю - сейчас есть такие приложения - типа часиков, календариков, заметок, которые всегда находятся на рабочем столе, причём выглядят совсем не как обычные окна...а красиво оформленные...будто это картинка - подскажите - как ето делается? Окно по-хитрому прорисовывается, или можно картинку с меняющейся информацией на рабочий стол "повесить"? 
PM MAIL   Вверх
_hunter
Дата 21.7.2006, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 16
Всего: 98



это делается через регионы. ищи по форуму SetWindowRgn... 


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Stesh_ka
Дата 21.7.2006, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 12.8.2003

Репутация: нет
Всего: нет



Спасибо, частично разобралась. а вот как сделать, чтобы етого окна не было на панели задач? 
PM MAIL   Вверх
_hunter
Дата 21.7.2006, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 16
Всего: 98



это зависит от того, на чем пишеш.
в любом случае этот вопрос уже поднимался... 


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
MoZy
Дата 21.7.2006, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 193
Регистрация: 4.6.2006

Репутация: нет
Всего: 0



Stesh_ka,  мне не трудно, но это на Си:

Код


#define WM_TRAYCLICK  6699

BOOL AddTaskIcon(HWND hwnd, UINT uID, HICON hicon, LPSTR lpszTip) //добавить в трей
{
    BOOL res;
    NOTIFYICONDATA tnid;
    
    tnid.cbSize = sizeof(NOTIFYICONDATA); 
    tnid.hWnd = hwnd; //хендл окна
    tnid.uID = uID; //идентификатор, по которому потом обращаться

    tnid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP; 
    tnid.uCallbackMessage = WM_TRAYCLICK;//сообщение из трея
    tnid.hIcon = hicon; // 8-ми битная икошка 16х16
    if (lpszTip) //текст всплывающей подсказки
        lstrcpyn(tnid.szTip, lpszTip, sizeof(tnid.szTip)); 
    else 
        tnid.szTip[0] = '\0'; 
 
    res = Shell_NotifyIcon(NIM_ADD, &tnid); 
 
    if (hicon) 
        DestroyIcon(hicon); 

    return res; 
}


BOOL DelTaskIcon(HWND hwnd, UINT uID)//удалить из трея
{ 
    BOOL res; 
    NOTIFYICONDATA tnid; 
 
    tnid.cbSize = sizeof(NOTIFYICONDATA); 
    tnid.hWnd = hwnd; 
    tnid.uID = uID; 
         
    res = Shell_NotifyIcon(NIM_DELETE, &tnid); 

    return res;

}

BOOL ChangeTaskIcon(HWND hwnd, UINT uID, HICON hicon, LPSTR lpszTip) //изменить в трее
{ 
    BOOL res; 
    NOTIFYICONDATA tnid;
    
    tnid.cbSize = sizeof(NOTIFYICONDATA); 
    tnid.hWnd = hwnd; 
    tnid.uID = uID; 

    tnid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP; 
    tnid.uCallbackMessage = WM_TRAYCLICK; 
    tnid.hIcon = hicon; 
    if (lpszTip) 
        lstrcpyn(tnid.szTip, lpszTip, sizeof(tnid.szTip)); 
    else 
        tnid.szTip[0] = '\0'; 
 
    res = Shell_NotifyIcon(NIM_MODIFY, &tnid); 
 
    if (hicon) 
        DestroyIcon(hicon); 
 
    return res; 
}


//Следующее вставить в процедуру окна

case WM_TRAYCLICK:
     if(lParam == WM_LBUTTONDBLCLK)
     { 
         
         if(ShowWindow (hwndMain,0)==0)
         {
            ShowWindow (hwndMain,SW_SHOW);
            SetForegroundWindow(hwndMain);
        }
        else ShowWindow (hwndMain,SW_HIDE);

         break;
     }

return DefWindowProc (hwnd, nMsg, wParam, lParam);
 
--------------------
Experimentia est optima rerum magistra
PM MAIL WWW ICQ   Вверх
Stesh_ka
Дата 21.7.2006, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 12.8.2003

Репутация: нет
Всего: нет




Видимо перефорумлирую я вопросы..
1. Как сделать, чтобы программа не создавала ссылку (тень) на панели задач
2. Какую библиотеку для работы с изображениями (в частности - наложение рисунков) лучше использовать для Buildera  
PM MAIL   Вверх
586
Дата 21.7.2006, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 10
Всего: 146



Цитата(Stesh_ka @  21.7.2006,  16:48 Найти цитируемый пост)
чтобы етого окна не было на панели задач

Код
#include <shlobj.h>

void __fastcall TForm1::Button1Click(TObject *Sender)
{
 CoInitialize(0);
 ITaskbarList *tbl;
 CoCreateInstance(CLSID_TaskbarList, 0, 1, IID_ITaskbarList, (void**)&tbl);
 tbl->DeleteTab(Application->Handle);
 tbl->Release();
 CoUninitialize();
}
  

Это сообщение отредактировал(а) 586 - 22.7.2006, 09:34
PM   Вверх
MoZy
Дата 21.7.2006, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 193
Регистрация: 4.6.2006

Репутация: нет
Всего: 0



 smile  подумал, что раз не надо в таскбаре, то надо в трее. про трей сказал, а про таскбар забыл )) Лично я просто делаю так:

Код

hwndMain = CreateWindowEx
(
    WS_EX_TOOLWINDOW|WS_EX_TOPMOST,
    szMainWndClass,/* Class name */
    "",
    WS_POPUP,
    xm,ym,width,height,
    NULL,/* No parent window */
    NULL,/* No menu */
    hInst,/* This program instance */
    NULL/* Creation parameters */
);
 

 smile  но это не в Билдере 

Это сообщение отредактировал(а) MoZy - 21.7.2006, 20:05
--------------------
Experimentia est optima rerum magistra
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0555 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.