home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.databases.paradox      To crash or not to crash, asks Borland      9,834 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 7,999 of 9,834   
   Jim Moseley to All   
   Re: Add button to Title bar   
   16 Dec 06 01:35:23   
   
   From: jmose@mapson.attglobal.net   
      
   FYI, here's what I ended up doing to solve my problem.   
      
   I created a small non-modal dialog control form, that just had 3 buttons   
   - Pin Here, Reset, and a checkbox for 'Dialog?', but no title bar, dialog   
   frame, or mouse activation.  When this control form is opened and/or moved,   
   the SetWindowPos code below is called.  This will keep the control form on   
   top, but not give it focus.  More importantly, it doesn't steal focus from   
   the main form.   
      
   Before the main form is opened, it is checked to see if the user has flagged   
   it as a dialog and if so, openAsDialog() is used.  It is also checked to   
   see if they've previously pinned the form, & if so the desired x,y is set   
   from that.   
      
   If the main form is opened as a dialog, the control form is opened & positioned   
   on the main form's title bar.  There could be several control forms open   
   at once (for different main forms), so the control form's title is set to   
   the main form's plus a constant string.   
      
   Everytime the main form is moved (menuControlMove), the control form is also   
   moved by the same x,y changes.  Since all my move code is in a library, the   
   menuAction must doDefault before calling the library methods.   
      
   On the main form's menuCanClose, I check to see if there is a control form   
   and close it also.   
      
   Problems with this approach:   
   1. The control form doesn't move seamlessly with the main form.  It only   
   moves when the main form is done moving.   
   2. The control form isn't transparent, so it obscures some of the main form's   
   title bar.   
      
   Any suggestions on these 2 problems?  Otherwise, it works great.  Thanks   
   for all the input.   
      
   Jim Moseley   
      
      
   uses USER32   
      SetWindowPos(WinHandle CLONG,   
         WinHandleInsertAfter CLONG,   
         X CLONG, Y CLONG, CX CLONG, CY CLONG,   
         wFlags CLONG)   
   endUses   
   var HWND_TOP, windowParm longint endvar   
      
   HWND_TOP 	= 0   
   SWP_NOSIZE 	= 1	; &H1   
   SWP_NOMOVE 	= 2	; &H2   
   SWP_NOACTIVATE  = 16	; &H10   
   SWP_SHOWWINDOW  = 64	; &H40   
   windowParm = SWP_NOACTIVATE + SWP_NOSIZE + SWP_NOMOVE   
   SetWindowPos(siWinHandle, HWIND_TOP, 0,0,0,0, windowParm)   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca