BG Development


Страници: (6) [1] 2 3 ... последна »  ( Първото ново мнение ) Reply to this topicStart new topicStart Poll

> Прозрачен прозорец с картинка
PxL
Публикувано на: 07-03-2020, 01:14
Quote Post


Group Icon
Име: Димитър Т. Димитров
Група: VIP
Ранг: Почетен член

Мнения: 3446
Регистриран на: 26.04.05



Понеже имам един Windows 10 тук та се зайграх пак с API-то. Та задачката ми е да направя borderless прозорец и за background да е някакъв png файл (с алфата).

Ей тук го имам с gtk3 https://gist.github.com/idimiter/d2f1a6820c...7e6682fc13e39db ползвам анимиран gif, но концепцията е същата.

Та въпроса ми за по-запознатите е има ли как да стане това и за Windows.

Мъча нещо от сорта на:
CODE

wcex.hbrBackground  = CreatePatternBrush((HBITMAP)LoadImage(0, _T("test.bmp"), IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION | LR_LOADFROMFILE ));


Т'ва си работи за bmp-тата, ама може ли да стане с PNG? И мога ли да му махна border-и и всичко и да се държи като popup?

Това мнение е било редактирано от PxL на 07-03-2020, 01:19


--------------------
void putchar(char c);int main(){int x,c=1,i;for(i=0;(x="PxLY2H4:2E;7231?=68255A5S5P9N:N9O84111H861I85111G9N:O811O812M<G33911EAEDBECE22169D1=2k"[i+++3]);)while(x-->'0')putchar((!(++c%'('))?0x0a:33^(i&1));}
PMEmail PosterUsers Website
Top
ici
Публикувано на: 07-03-2020, 02:00
Quote Post


Group Icon
Име: Ивайло Илчев
Група: VIP
Ранг: Почетен член

Мнения: 17062
Регистриран на: 06.06.04



За Виндовс:

CODE
from tkinter import messagebox
from tkinter import *

class App():
   def __init__(self):
       self.root = Tk()
       self.root.overrideredirect(True)
       self.root.wm_attributes("-transparentcolor", "white")
       self.frame = Frame(self.root, width=200, height=200, borderwidth=2, relief=FLAT, bg='white')
       self.frame.pack_propagate(False)
       self.frame.pack()
       self.bQuit = Button(self.frame, text="Quit", command=self.root.quit)
       self.bQuit.pack(pady=20)
       self.bHello = Button(self.frame, text="Say Hello", command=self.hello)
       self.bHello.pack(pady=20)

   def hello(self):
       messagebox.showinfo("Popup", "Hi There!")

app = App()
app.root.mainloop()


Това мнение е било редактирано от ici на 07-03-2020, 02:09

Прикачена картинка (Кликнете на картинката, за да я увеличите!)
Прикачена картинка


--------------------
Не се безпокойте, всичко най-лошо тепърва предстои!
PMEmail PosterUsers Website
Top
PxL
Публикувано на: 07-03-2020, 02:53
Quote Post


Group Icon
Име: Димитър Т. Димитров
Група: VIP
Ранг: Почетен член

Мнения: 3446
Регистриран на: 26.04.05



Ок, ама на мен идеята ми е нещо като онзи "досадният кламер в MSOffice 95", дето ти дава направления в живота. Aнимирана картинка с прозрачност, висяща на екрана, която не може да се махне. Popup-a в gtk върши работа, защото автоматично го крие от takskbar-a и меню-тата, интересно ми е на Windows как ще стане.


Това мнение е било редактирано от PxL на 07-03-2020, 02:58


--------------------
void putchar(char c);int main(){int x,c=1,i;for(i=0;(x="PxLY2H4:2E;7231?=68255A5S5P9N:N9O84111H861I85111G9N:O811O812M<G33911EAEDBECE22169D1=2k"[i+++3]);)while(x-->'0')putchar((!(++c%'('))?0x0a:33^(i&1));}
PMEmail PosterUsers Website
Top
ici
Публикувано на: 07-03-2020, 03:47
Quote Post


Group Icon
Име: Ивайло Илчев
Група: VIP
Ранг: Почетен член

Мнения: 17062
Регистриран на: 06.06.04



Къде го видя на таскбара това нещо? Ако няма бутон "Кют", не можеш да го затвориш. Всичко което искаш се намира в два реда!

ПП. Айде три реда:
CODE
      self.root.overrideredirect(True)
      self.root.wm_attributes("-transparentcolor", "white")
      self.frame = Frame(self.root, width=200, height=200, borderwidth=2, relief=FLAT, bg='white')


Това мнение е било редактирано от ici на 07-03-2020, 03:48


--------------------
Не се безпокойте, всичко най-лошо тепърва предстои!
PMEmail PosterUsers Website
Top
dvader
Публикувано на: 07-03-2020, 07:02
Quote Post


Group Icon
Име:
Група: VIP
Ранг: Почетен член

Мнения: 4781
Регистриран на: 12.07.05





--------------------
I find your lack of faith disturbing
PM
Top
akrachev
Публикувано на: 07-03-2020, 13:58
Quote Post



Име: акрачев
Група: Потребител
Ранг: Старо куче

Мнения: 825
Регистриран на: 27.11.09



PMEmail Poster
Top
PxL
Публикувано на: 07-03-2020, 16:32
Quote Post


Group Icon
Име: Димитър Т. Димитров
Група: VIP
Ранг: Почетен член

Мнения: 3446
Регистриран на: 26.04.05



От всичкото стигнах до ей тези, които са от преди 12 години( https://faithlife.codes/blog/2008/09/displa..._with_c_part_i/ )... и просто се отказах, няма оправдание за този код:

CODE

// Creates a stream object initialized with the data from an executable resource.

IStream * CreateStreamOnResource(LPCTSTR lpName, LPCTSTR lpType)
{
   // initialize return value

   IStream * ipStream = NULL;

   // find the resource

   HRSRC hrsrc = FindResource(NULL, lpName, lpType);
   if (hrsrc == NULL)
       goto Return;

   // load the resource

   DWORD dwResourceSize = SizeofResource(NULL, hrsrc);
   HGLOBAL hglbImage = LoadResource(NULL, hrsrc);
   if (hglbImage == NULL)
       goto Return;

   // lock the resource, getting a pointer to its data

   LPVOID pvSourceResourceData = LockResource(hglbImage);
   if (pvSourceResourceData == NULL)
       goto Return;

   // allocate memory to hold the resource data

   HGLOBAL hgblResourceData = GlobalAlloc(GMEM_MOVEABLE, dwResourceSize);
   if (hgblResourceData == NULL)
       goto Return;

   // get a pointer to the allocated memory

   LPVOID pvResourceData = GlobalLock(hgblResourceData);
   if (pvResourceData == NULL)
       goto FreeData;

   // copy the data from the resource to the new memory block

   CopyMemory(pvResourceData, pvSourceResourceData, dwResourceSize);
   GlobalUnlock(hgblResourceData);

   // create a stream on the HGLOBAL containing the data

   if (SUCCEEDED(CreateStreamOnHGlobal(hgblResourceData, TRUE, &ipStream)))
       goto Return;

FreeData:
   // couldn't create stream; free the memory

   GlobalFree(hgblResourceData);

Return:
   // no need to unlock or free the resource

   return ipStream;
}



Това мнение е било редактирано от PxL на 07-03-2020, 16:35


--------------------
void putchar(char c);int main(){int x,c=1,i;for(i=0;(x="PxLY2H4:2E;7231?=68255A5S5P9N:N9O84111H861I85111G9N:O811O812M<G33911EAEDBECE22169D1=2k"[i+++3]);)while(x-->'0')putchar((!(++c%'('))?0x0a:33^(i&1));}
PMEmail PosterUsers Website
Top
dvader
Публикувано на: 07-03-2020, 17:36
Quote Post


Group Icon
Име:
Група: VIP
Ранг: Почетен член

Мнения: 4781
Регистриран на: 12.07.05



Ми ползвай gdiplus и не се занимавай с глупости.


--------------------
I find your lack of faith disturbing
PM
Top
PxL
Публикувано на: 09-03-2020, 01:11
Quote Post


Group Icon
Име: Димитър Т. Димитров
Група: VIP
Ранг: Почетен член

Мнения: 3446
Регистриран на: 26.04.05



QUOTE (dvader @ 07-03-2020, 18:36)
Ми ползвай gdiplus и не се занимавай с глупости.

Не, не. Като цяло голям "ташак" е станало това Win32 API, заслужават си ебавките като го гледам... Пълна скръб, ако това са ви примерите... По-зле сте и от Линукс... Извади ми го от темплейта, с 2-3 реда редактирани, че а го видя (Ако може не на wrapper-и и подбни, от startup на 2017-ката например с C++)...

Това мнение е било редактирано от PxL на 09-03-2020, 01:20


--------------------
void putchar(char c);int main(){int x,c=1,i;for(i=0;(x="PxLY2H4:2E;7231?=68255A5S5P9N:N9O84111H861I85111G9N:O811O812M<G33911EAEDBECE22169D1=2k"[i+++3]);)while(x-->'0')putchar((!(++c%'('))?0x0a:33^(i&1));}
PMEmail PosterUsers Website
Top
Gamma Goblin
Публикувано на: 09-03-2020, 07:05
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 3564
Регистриран на: 21.02.18



ах какъв красив префикс, мед за душата

QUOTE

LPCTSTR
hgbl


Това мнение е било редактирано от Gamma Goblin на 09-03-2020, 07:07


--------------------
https://ncase.me/trust-bg/
---
Misanthropy is the general hatred, dislike, distrust or contempt of the human species or human nature. A misanthrope or misanthropist is someone who holds such views or feelings.
---
INTJ’s are good at being very good at everything
---
I have a problem. Let's use Microservices! Now I have 13 distributed problems.
PMEmail PosterUsers Website
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Страници: (6) [1] 2 3 ... последна » Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0