Alaska Software Inc. - Windows title bar
Username: Password:
AuthorTopic: Windows title bar
M.B. BaijuWindows title bar
on Thu, 03 Jan 2019 20:42:06 +0100
HI,

I need to hide default application windows title bar and create 
my own title bar with custom icons (minimize,maximize and close)
i.e:Title bar dragging function too.

Anybody done this type of windows ?

Can someone share code snippets ?


Regards,

M.B.BAIJU



bar.jpg
Jim LeeRe: Windows title bar
on Sat, 05 Jan 2019 01:39:05 +0100
M.B. BaijuRe: Windows title bar
on Sat, 05 Jan 2019 09:49:02 +0100
Hello Jim,

Thanks for your reply.

Can you share Codejock Skinframework ActiveX codes. I want try that.

Now current screen layout of Xbase++ is obsolete style. Every customers say 
it look like 80's form layouts.

Alaska should improve lot in visual styles.

You worked with PC SOFT WINDEV, they are promising windows,mobile and web
solution in sames codes and visual presentation is very good.

  

Regards,

M.B.BAIJU



Jim Lee wrote in message news:37d396d9$23a53e9e$934b9@news.alaska-software.com...
>hi,
>
>> I need to hide default application windows title bar and create
>> my own title bar with custom icons (minimize,maximize and close)
>> i.e:Title bar dragging function too.
>
>why you want to change these 3 Icon ?
>they are part of visual Style depend on Theme which you use.
>
>i use Codejock Skinframework ActiveX for my Xbase++ App to assign own Theme
like iTunes
>
>
>
>you only need to add some line in Main and it work 99% stable.
>only XbpMenu() Ownerdraw make some Problem
>
>---
>
>using XbpDialog() with o:Titlebar := .F. will show a Window without Titlebar.
>you can set a XbpStatic on Top to simulate Titlebar ... but you also must add
Action o:LbDown e.g. to move Window
>
>
>so it depend what you want to do
>
>---
>Diese E-Mail wurde von AVG auf Viren geprüft.
>http://www.avg.com
Jim LeeRe: Windows title bar
on Sun, 06 Jan 2019 00:11:26 +0100
> Can you share Codejock Skinframework ActiveX codes. I want try that.

CLASS XCM FROM XbpDialog

METHOD XCM:Create( oParent, oOwner, aPos, aSize, aPresParam, lVisible )
...
   ::oSkin := XBPACTIVEXCONTROL() :new( ::drawingArea,, { 0, 0 }, { 0, 0 } )
   ::oSkin:CLSID := "{16378D39-12CF-4C7D-8769-DFAAF02FD1F5}"
   ::oSkin:License := "Skin Framework Control Copyright (c) 2003-2009
Codejock Software" +CHR(13)+CHR(10)+ ;
                      "PRODUCT-ID: Codejock.SkinFramework.ActiveX" +
HX_VERSION() +CHR(13)+CHR(10)+ ;
                      "VALIDATE-CODE: XXX-XXX-XXX-XXX"
   ::oSkin:create()

   ::oSkin:ApplyOptions := bOR( xtpSkinApplyMetrics, ;
                                xtpSkinApplyFrame, ;
                                xtpSkinApplyColors )
                              xtpSkinApplyMenus  )

   ::oSkin:AutoApplyNewThreads := .T.
   ::oSkin:AutoApplyNewWindows := .T.

   lRetErr := ::oSkin:callMethod( "LoadSkin", "Office2007.cjstyles", "" )
   IF lRetErr = .T.
      ::oSkin:callMethod( "ApplyWindow", ::GetHWnd() )

      SP_nColor1( AutomationTranslateColor( oDlg:oSkin:GetColor(
COLOR_ACTIVECAPTION ), .T. ) )
      SP_nColor2( AutomationTranslateColor( oDlg:oSkin:GetColor(
COLOR_CAPTIONTEXT ), .T. ) )
    ENDIF
RETURN Self

METHOD XCM:Destroy()
...
   ::oSkin:callMethod( "RemoveAllWindows" )
   ::oSkin:Destroy()
RETURN ::XbpDialog:Destroy()


  change Skin "on-fly"
PROCEDURE SetSKin( cPath, cFile, oObj )
LOCAL cFullPath := cPath + cFile
LOCAL oDlg
LOCAL lRetErr

   IF FILE( cFullPath )
      oDlg := LastDialog( oObj )

      IF SP_lSkinOK()
         lRetErr := oDlg:oSkin:callMethod( "LoadSkin", cFullPath, "" )

         IF lRetErr = .T.
            oDlg:oSkin:callMethod( "ApplyWindow", oDlg:getHWND() )

            SP_nColor1( AutomationTranslateColor( oDlg:oSkin:GetColor(
COLOR_ACTIVECAPTION ), .T. ) )
            SP_nColor2( AutomationTranslateColor( oDlg:oSkin:GetColor(
COLOR_CAPTIONTEXT ), .T. ) )
         ENDIF

         oDlg:drawingArea:setColorBG( SP_nColor1() )
         oDlg:configure()

          DXE Rebar
         oDlg:oRebar:SetRebarBG( SP_nColor1() )

         SETAPPWINDOW( oDlg )
         SETAPPFOCUS( oDlg )
      ENDIF

      SP_SkinPath( cFullPath )     Path for Skin
   ENDIF
RETURN




---
Diese E-Mail wurde von AVG auf Viren geprüft.
http://www.avg.com
M.B. BaijuRe: Windows title bar
on Mon, 07 Jan 2019 07:42:59 +0100
Hello Jim,

Thanks for your code sample.

I will try and comeback.

How reliable this product ?

http://bb.donnay-software.com/Donnay/viewtopic.php?f=5&t=1308

Regards,

M.B.BAIJU



Jim Lee wrote in message news:10f9b7bf$732eea65$95623@news.alaska-software.com...
>> Can you share Codejock Skinframework ActiveX codes. I want try that.
>
>CLASS XCM FROM XbpDialog
>
>METHOD XCM:Create( oParent, oOwner, aPos, aSize, aPresParam, lVisible )
>...
>   ::oSkin := XBPACTIVEXCONTROL() :new( ::drawingArea,, { 0, 0 }, { 0, 0 } )
>   ::oSkin:CLSID := "{16378D39-12CF-4C7D-8769-DFAAF02FD1F5}"
>   ::oSkin:License := "Skin Framework Control Copyright (c) 2003-2009
>Codejock Software" +CHR(13)+CHR(10)+ ;
>                      "PRODUCT-ID: Codejock.SkinFramework.ActiveX" +
>HX_VERSION() +CHR(13)+CHR(10)+ ;
>                      "VALIDATE-CODE: XXX-XXX-XXX-XXX"
>   ::oSkin:create()
>
>   ::oSkin:ApplyOptions := bOR( xtpSkinApplyMetrics, ;
>                                xtpSkinApplyFrame, ;
>                                xtpSkinApplyColors )
>                              xtpSkinApplyMenus  )
>
>   ::oSkin:AutoApplyNewThreads := .T.
>   ::oSkin:AutoApplyNewWindows := .T.
>
>   lRetErr := ::oSkin:callMethod( "LoadSkin", "Office2007.cjstyles", "" )
>   IF lRetErr = .T.
>      ::oSkin:callMethod( "ApplyWindow", ::GetHWnd() )
>
>      SP_nColor1( AutomationTranslateColor( oDlg:oSkin:GetColor(
>COLOR_ACTIVECAPTION ), .T. ) )
>      SP_nColor2( AutomationTranslateColor( oDlg:oSkin:GetColor(
>COLOR_CAPTIONTEXT ), .T. ) )
>    ENDIF
>RETURN Self
>
>METHOD XCM:Destroy()
>...
>   ::oSkin:callMethod( "RemoveAllWindows" )
>   ::oSkin:Destroy()
>RETURN ::XbpDialog:Destroy()
>
>
>  change Skin "on-fly"
>PROCEDURE SetSKin( cPath, cFile, oObj )
>LOCAL cFullPath := cPath + cFile
>LOCAL oDlg
>LOCAL lRetErr
>
>   IF FILE( cFullPath )
>      oDlg := LastDialog( oObj )
>
>      IF SP_lSkinOK()
>         lRetErr := oDlg:oSkin:callMethod( "LoadSkin", cFullPath, "" )
>
>         IF lRetErr = .T.
>            oDlg:oSkin:callMethod( "ApplyWindow", oDlg:getHWND() )
>
>            SP_nColor1( AutomationTranslateColor( oDlg:oSkin:GetColor(
>COLOR_ACTIVECAPTION ), .T. ) )
>            SP_nColor2( AutomationTranslateColor( oDlg:oSkin:GetColor(
>COLOR_CAPTIONTEXT ), .T. ) )
>         ENDIF
>
>         oDlg:drawingArea:setColorBG( SP_nColor1() )
>         oDlg:configure()
>
>          DXE Rebar
>         oDlg:oRebar:SetRebarBG( SP_nColor1() )
>
>         SETAPPWINDOW( oDlg )
>         SETAPPFOCUS( oDlg )
>      ENDIF
>
>      SP_SkinPath( cFullPath )     Path for Skin
>   ENDIF
>RETURN
>
>
>
>
>---
>Diese E-Mail wurde von AVG auf Viren geprüft.
>http://www.avg.com
Jim LeeRe: Windows title bar
on Mon, 07 Jan 2019 20:39:30 +0100
hi,

> How reliable this product ?
>
> http://bb.donnay-software.com/Donnay/viewtopic.php?f=5&t=1308

i do not use Codejock Controls any more. i have made my own native Controls.

i use only Codejock SkinFrameWork and it work for me 99%. Only Ownerdraw
Menu make some Problem.

---

Xbase++ ActiveX is slow but you call it only once at Start so it is no
Problem.
as you see it need only some line of Code so you can testdrive if it work
with your Xbase++ App



---
Diese E-Mail wurde von AVG auf Viren geprüft.
http://www.avg.com
M.B. BaijuRe: Windows title bar
on Wed, 23 Jan 2019 09:41:04 +0100
Hello Jim,

I tried your code, It is not working. Can you provide one working sample to check.

Current Version Xtreme SkinFramework ActiveX Control 18.6.0

Regards,

M.B.BAIJU

Jim Lee wrote in message news:2288054a$52127840$a2946@news.alaska-software.com...
>hi,
>
>> How reliable this product ?
>>
>> http://bb.donnay-software.com/Donnay/viewtopic.php?f=5&t=1308
>
>i do not use Codejock Controls any more. i have made my own native Controls.
>
>i use only Codejock SkinFrameWork and it work for me 99%. Only Ownerdraw
>Menu make some Problem.
>
>---
>
>Xbase++ ActiveX is slow but you call it only once at Start so it is no
>Problem.
>as you see it need only some line of Code so you can testdrive if it work
>with your Xbase++ App
>
>
>
>---
>Diese E-Mail wurde von AVG auf Viren geprüft.
>http://www.avg.com



code.jpg
Jim LeeRe: Windows title bar
on Wed, 23 Jan 2019 23:48:38 +0100
> I tried your code, It is not working. Can you provide one working sample 
> to check.

you have to modify thes lines for your CLSID and Version

   ::oSkin:CLSID := "{16378D39-12CF-4C7D-8769-DFAAF02FD1F5}"
   ::oSkin:License := "Skin Framework Control Copyright (c) 2003-2009
                      Codejock Software" +CHR(13)+CHR(10)+ ;
                      "PRODUCT-ID: Codejock.SkinFramework.ActiveX" +
                      HX_VERSION() +CHR(13)+CHR(10)+ ;
                      "VALIDATE-CODE: XXX-XXX-XXX-XXX"

i recommend to use Formdesigner XPPFD.EXE to write these lines into your
Code



---
Diese E-Mail wurde von AVG auf Viren geprüft.
http://www.avg.com