Author | Topic: 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 Lee | Re: 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 Lee | Re: 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 Lee | Re: 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 > > > |