How to draw above the others apps when Blitz3d is

Blitz3D Forums/Blitz3D Beginners Area/How to draw above the others apps when Blitz3d is

RemiD(Posted 2012) [#1]
Hello, :)

I have already posted a similar question in the general help forum because i don't know if Blitz3d can achieve this effect.

Is it possible to draw an image on the screen each x milliseconds, above the others images of the screen, even when Blitz3d is running in the background ?

For example, let's say i read a page on Firefox, i also use Notepad to take notes, i also use Photofiltre to create images.

I want a program which runs in the background and which displays an image each x milliseconds above all the others apps.

Is it possible to code this with Blitz3d and maybe with an external .dll ?

Is there a tutorial or an example to code a .dll and associate it with Blitz3d ?

Thanks,


jfk EO-11110(Posted 2012) [#2]
As far as I remember it was possible to show a blitz window with a polygonal clipping, using the BlitzSys DLL. You then also need to use WindowSetPos (or alike), trough a userlib to set the image as topmost/focused.


RemiD(Posted 2012) [#3]
Thanks for the info Jfk :)


RemiD(Posted 2012) [#4]
Unfortunately the functions DLLSetWindowPos() or DLLSetWindowZOrder(() don't produce the effect i want.

Never mind, i'm going to find another way. ;)


Kryzon(Posted 2012) [#5]
You'll have to dig the API resources on this, as this is no easy task. You want to do something similar to Word's virtual assistant (the dog or clip-thing), that stays on top of everything regardless if it's deselected.

You can set a window's SetWindowPos parameter to "Always On Top" (kinda like the Task Manager in Win XP).
More here: http://support.microsoft.com/kb/184297

It's still a window, so you can set it to a random shape.
You can mask areas of a window and have it be displayed with any shape you want: a text, a clipart etc. For this you use window layering - I think that's what jfk is talking about.
More here:
http://msdn.microsoft.com/en-us/library/ms997507.aspx
http://stackoverflow.com/questions/1339789/how-to-create-a-ellipse-shaped-window-with-vc-using-win32-api

Most of these API functions are already userlibbed by someone, or are at least feasible for you to make one yourself. In case you have to input structures to the functions, use Blitz3D's Banks.

Last edited 2012


RemiD(Posted 2012) [#6]
Thanks for the links Kryzon. :)


RemiD(Posted 2012) [#7]
Hi, :)

Just to let you know that it is possible to draw a window above others programs even if the blitz3d program is not the active window.

I haven't used the required parameter during my previous test and that's why it didn't work.

To achieve this effect, the function and parameters to use with the library Blitzsys is :
DLLSetWindowPos(hWnd,HWND_TOPMOST,WX,WY,WW,WH,SWP_SHOWWINDOW)

Read the doc if you want more infos.