Xlib ile yalnızca kenarlık çizgileri, başlık, kapatma düğmesi ve fareyle hareket edebileceğiniz bir pencere oluşturmanın bir yolu var mı? Pencerenin içeriği boş olmalı (ya da "tamamen şeffaf", ancak "şeffaflık" gerek duymadığım bir efekt gibi geliyor). Temelde pencere arka plan alanını göstermelidir.Xlib ile sınır çizgilerini gösteren boş veya saydam pencere yalnızca
5
A
cevap
11
İstediğiniz şey olup olmadığından emin değilim, ancak aşağıdaki kod, saydam arka planlı bir pencere oluşturuyor ancak yine de pencere yöneticinizin pencere bezemesini kullanıyor.
Yalnızca X11'inizin ve grafik donanım yapılandırmanızın 32 bit derinliğe sahip görselleri desteklemesi durumunda çalışır.
#include <X11/Xlib.h>
#include <X11/Xutil.h>
int main(int argc, char* argv[])
{
Display* display = XOpenDisplay(NULL);
XVisualInfo vinfo;
XMatchVisualInfo(display, DefaultScreen(display), 32, TrueColor, &vinfo);
XSetWindowAttributes attr;
attr.colormap = XCreateColormap(display, DefaultRootWindow(display), vinfo.visual, AllocNone);
attr.border_pixel = 0;
attr.background_pixel = 0;
Window win = XCreateWindow(display, DefaultRootWindow(display), 0, 0, 300, 200, 0, vinfo.depth, InputOutput, vinfo.visual, CWColormap | CWBorderPixel | CWBackPixel, &attr);
XSelectInput(display, win, StructureNotifyMask);
GC gc = XCreateGC(display, win, 0, 0);
Atom wm_delete_window = XInternAtom(display, "WM_DELETE_WINDOW", 0);
XSetWMProtocols(display, win, &wm_delete_window, 1);
XMapWindow(display, win);
int keep_running = 1;
XEvent event;
while (keep_running) {
XNextEvent(display, &event);
switch(event.type) {
case ClientMessage:
if (event.xclient.message_type == XInternAtom(display, "WM_PROTOCOLS", 1) && (Atom)event.xclient.data.l[0] == XInternAtom(display, "WM_DELETE_WINDOW", 1))
keep_running = 0;
break;
default:
break;
}
}
XDestroyWindow(display, win);
XCloseDisplay(display);
return 0;
}
İlgili konular
- 1. Saydam xlib pencerelere tıklayın
- 2. Xlib ile bir pencere nasıl geri yüklenir?
- 3. Xlib Bu nasıl (Pencere Dekorasyonunu Çıkarma) Çalışıyor?
- 4. PyQt5: Saydam olmayan çocuklarla yarı saydam bir pencere oluştur
- 5. Haskell, yalnızca uyarılar gösteren kabile yapısı ile nasıl yeniden derlenir
- 6. Bu ifade 0'ı algılamamalı; Yalnızca boş veya boş dizeler
- 7. Java - Boş pencere
- 8. Yalnızca kenarlıktaki gölgelerle JavaFX saydam bir aşama nasıl oluşturulur?
- 9. Xlib Hala Kullanılmakta mıdır?
- 10. SQL server yalnızca tek satırlık veya boş değer döndürüyor
- 11. jQPlot - dikey kılavuz çizgilerini kaldırın
- 12. Sınır çemberine sınır ekleme
- 13. AppKey boş veya boş olamaz
- 14. alertDialog arka planı saydam
- 15. Henüz mevcut olmayan düğümler için sanal ağaç görünümü ızgara çizgilerini nasıl gösteririm?
- 16. VS2017'nin editördeki dikey çizgilerini nasıl gizleyebilir veya azaltabilirim
- 17. Sınır Şeklinin Sınırı CSS ile
- 18. Sınır SQL
- 19. Rengi "saydam"
- 20. 7645 Boş veya boş tam metin yüklemi
- 21. WPF Application_Startup yönteminde oluşturulan pencere boş
- 22. python-Xlib içe aktarma sorunları
- 23. Başka bir pencere açmadan veya
- 24. Perl'de boş girişler için sıfırları gösteren bir liste nasıl alınır?
- 25. Başka bir pencereyi gösteren bir ok ile nasıl bir pencere oluşturabilirim?
- 26. Hala herkes xlib kullanarak programı doğrudan
- 27. Starter, boş bir sayfayı gösteren örnek olarak tepki veriyor
- 28. Şeffaf Pencere (veya Ekrana çiz) Hayır Fare Yakalama
- 29. Saydam Operatörü İşlevsel İşlevler
- 30. Sınır Java Formu