Alaska Software Inc. - XbpBitmap question
Username: Password:
AuthorTopic: XbpBitmap question
Carlos a Beling XbpBitmap question
on Fri, 13 Oct 2017 18:03:00 -0300
Good afternoon.
I draw a XbpBitmap() in the AppDesktop() and I want to destroy the image 
as shown in the attach.
Please, how can I hide it?
I tried: AppDesktop():invalidateRect(), Appdesktop():paint() and 
AppDesktop():show()

Fraternally
Beling


XbpBitmap.png
Jim LeeRe: XbpBitmap question
on Mon, 16 Oct 2017 07:44:08 +0200
> I draw a XbpBitmap() in the AppDesktop()

how did you do this ?

> and I want to destroy the image

hm ... click on Desktop and press F5
***you need handle from Desktop -> SysListView32 to 
@user32:InvalidateRect( hWnd , 0 , 1 )

Question : what do you want to do with your bitmap near tasktray ?
Carlos a Beling Re: XbpBitmap question
on Tue, 17 Oct 2017 12:07:33 -0200
Hello Jim.
Good morning.
First of all many thanks.

The yellow rectangular area shown is a tip drawn Appdesktop() PS using 
XbpBitmap() below a menu item when it is not a submenu .

Please see the images:
-> PrtScr.png is the Desktop image that can to be seen.
-> Initial.png is the image of AppDesktop() after to be drawn using 
GraBitBlt()
after some tests. The AppDesktop() PS is not cleaned
-> Clean.png -> XbpPresSpace() cleaned before to save the AppDesktop() 
images that I put them here.

Pressing F5 does not clear the AppDesktop() PS that was drawn.

I think that if I using @user32:InvalidateRect( hWnd , 0 , 1 ) passing 
the AppDesktop() hWnd and the RECT of the tip can solve the problem. Is 
it right?

Fraternally
Beling








Em 16/10/2017 03:44, Jim Lee escreveu:
>> I draw a XbpBitmap() in the AppDesktop()
>
> how did you do this ?
>
>> and I want to destroy the image
>
> hm ... click on Desktop and press F5
> ***you need handle from Desktop -> SysListView32 to
> @user32:InvalidateRect( hWnd , 0 , 1 )
>
> Question : what do you want to do with your bitmap near tasktray ?
>
>
>
>
>


PtScr.png
initial.png
Clean.png
Carlos a Beling Re: XbpBitmap question
on Wed, 18 Oct 2017 12:38:20 -0200
Hello Jim.
Good morning.
Sorry to bother you.
I tried to clean the _tip's_ area with the attached prg as many ways 
taht I could imagien (my knowledge of the APIs is very very restricted) 
and nothing worked.
Please, do you know what goes wrong?

Fraternally
Beling


Em 17/10/2017 12:07, Carlos a Beling escreveu:
> Hello Jim.
> Good morning.
> First of all many thanks.
>
> The yellow rectangular area shown is a tip drawn Appdesktop() PS using
> XbpBitmap() below a menu item when it is not a submenu .
>
> Please see the images:
> -> PrtScr.png is the Desktop image that can to be seen.
> -> Initial.png is the image of AppDesktop() after to be drawn using
> GraBitBlt()
> after some tests. The AppDesktop() PS is not cleaned
> -> Clean.png -> XbpPresSpace() cleaned before to save the AppDesktop()
> images that I put them here.
>
> Pressing F5 does not clear the AppDesktop() PS that was drawn.
>
> I think that if I using @user32:InvalidateRect( hWnd , 0 , 1 ) passing
> the AppDesktop() hWnd and the RECT of the tip can solve the problem. Is
> it right?
>
> Fraternally
> Beling
>
>
>
>
>
>
>
>
> Em 16/10/2017 03:44, Jim Lee escreveu:
>>> I draw a XbpBitmap() in the AppDesktop()
>>
>> how did you do this ?
>>
>>> and I want to destroy the image
>>
>> hm ... click on Desktop and press F5
>> ***you need handle from Desktop -> SysListView32 to
>> @user32:InvalidateRect( hWnd , 0 , 1 )
>>
>> Question : what do you want to do with your bitmap near tasktray ?
>>
>>
>>
>>
>>


Invalidate.prg
Jim LeeRe: XbpBitmap question
on Wed, 18 Oct 2017 18:05:11 +0200
hi

>Pressing F5 does not clear the AppDesktop() PS that was drawn.

have you click on Desktop before press F5 ?

>I think that if I using @user32:InvalidateRect( hWnd , 0 , 1 ) passing
>the AppDesktop() hWnd and the RECT of the tip can solve the problem.

i don't think AppDesktop() hWnd give you right handle of
Desktop-SysListView32.

?   hDesktop  := @user32:GetDesktopWindow()
?   hExplorer := @user32:FindWindowExA(hDesktop,0,"Progman"+Chr(0),"Program 
Manager"+Chr(0))
?   hShell  := @user32:FindWindowExA(hExplorer,0,"SHELLDLL_DefView",0)
?   hListview := 
@user32:FindWindowExA(hShell,0,"SysListView32"+Chr(0),"FolderView"+Chr(0))
Carlos a Beling Re: XbpBitmap question
on Wed, 18 Oct 2017 15:19:27 -0200
Hello Jim:
good afternoon.
Many thanks again.

When I click in desktop the menu and the tip disapear.
I changed the attached program for to try erase the tip according your 
advise and nothing hapened.
If you desire take a look at it. Eveything is  very strange for me.

Fraternally
Beling

Em 18/10/2017 14:05, Jim Lee escreveu:
> hi
>
>> Pressing F5 does not clear the AppDesktop() PS that was drawn.
>
> have you click on Desktop before press F5 ?
>
>> I think that if I using @user32:InvalidateRect( hWnd , 0 , 1 ) passing
>> the AppDesktop() hWnd and the RECT of the tip can solve the problem.
>
> i don't think AppDesktop() hWnd give you right handle of
> Desktop-SysListView32.
>
> ?   hDesktop  := @user32:GetDesktopWindow()
> ?   hExplorer := @user32:FindWindowExA(hDesktop,0,"Progman"+Chr(0),"Program
> Manager"+Chr(0))
> ?   hShell  := @user32:FindWindowExA(hExplorer,0,"SHELLDLL_DefView",0)
> ?   hListview :=
> @user32:FindWindowExA(hShell,0,"SysListView32"+Chr(0),"FolderView"+Chr(0))
>
>
>
>
>


Invalidate.prg
Jim LeeRe: XbpBitmap question
on Wed, 18 Oct 2017 20:19:22 +0200
hi,

the GetDesktopWindow() API ist NOT the result ... it is the starting Point

if you got that handle next ist to find "Program Manager" which is easy
the Problem might be to find "SHELLDLL_DefView" while there can be other 
(WorkerW) between.
so if you got "SHELLDLL_DefView" than you will find "SysListView32".

now you can try to refresh "SysListView32"
i use this Way to get Desktop Icon but never try to refresh Desktop 
Background Bitmap where you paint on
Carlos a Beling Re: XbpBitmap question
on Thu, 19 Oct 2017 10:01:12 -0200
Hello Jim.
Good morning.
Many thanks again.
I am thinking that it may to have some problem in drawing in 
AppDesktop():lockPS() because the desktop appearence is restored when 
you click in its area it's PS is not restaured.
I will making some tests and, if I get some result, I will to put it here.

Fraternally
Beling


Em 18/10/2017 16:19, Jim Lee escreveu:
> hi,
>
> the GetDesktopWindow() API ist NOT the result ... it is the starting Point
>
> if you got that handle next ist to find "Program Manager" which is easy
> the Problem might be to find "SHELLDLL_DefView" while there can be other
> (WorkerW) between.
> so if you got "SHELLDLL_DefView" than you will find "SysListView32".
>
> now you can try to refresh "SysListView32"
> i use this Way to get Desktop Icon but never try to refresh Desktop
> Background Bitmap where you paint on
>
>
>