1

This library does exactly what I am talking about on Linux systems: http://ichi2.net/pyosd/

My knowledge of Win32 API is limited but it seems to me that unless you create a window and enter the win32 main loop, you cannot do it. Some Googling also confirmed that.

Even so, are they newer GUI frameworks or technologies that would make it happen on windows?

Thanks

victor n.
  • 658
  • 1
  • 7
  • 14
  • 1
    What is the "Win32 main loop"? Each window has its own [message loop](http://en.wikipedia.org/wiki/Message_loop_in_Microsoft_Windows), but all windows do not run under a central "main loop" in Win32. Also see: [Message and Message Queue Overviews](http://msdn.microsoft.com/en-us/library/ff468868.aspx). – Cody Gray - on strike Jan 24 '11 at 14:01
  • Couldn't you instantiate a window and set it so that all but the text you want to display is invisible? – Darth Continent Jan 24 '11 at 14:14

1 Answers1

5

You don't need no stinkin' GUI frameworks. You can either:

  1. Draw directly on the desktop. Of course, this is not generally considered a good idea, since it's mucking around with the internals of another application. Drawing this way is also quite fragile because your changes are erased each time the desktop repaints itself.

  2. Create a transparent, layered window that you draw onto, which will appear over the desktop. If you specify that this window should be a top-level window, you could also have it appear over all of the other windows on the desktop.

    There is absolutely nothing that forces windows to be rectangular gray-colored boxes, and since each window provides a device context that you can draw into, you can let your imagination run wild.

Community
  • 1
  • 1
Cody Gray - on strike
  • 239,200
  • 50
  • 490
  • 574