forum.vdsworld.com Forum Index forum.vdsworld.com
Visit VDSWORLD.com
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


Disable Minimize button

 
Post new topic   Reply to topic    forum.vdsworld.com Forum Index -> General Help
View previous topic :: View next topic  
Author Message
LiquidCode
Moderator Team


Joined: 05 Dec 2000
Posts: 1753
Location: Space and Time

PostPosted: Wed Jul 22, 2009 2:58 pm    Post subject: Disable Minimize button Reply with quote

Is there a way I can disable the minimize button on a non VDS window? Also the minimize option on the system menu as well? Thanks!
_________________
Chris
Http://theblindhouse.com
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Garrett
Moderator Team


Joined: 04 Oct 2001
Posts: 2149
Location: A House

PostPosted: Wed Jul 22, 2009 4:02 pm    Post subject: Reply with quote

I remember someone talking about this long long ago and thought there was a way to do this, but my old mind can't remember what it was now.
_________________
'What you do not want done to yourself, do not do to others.' - Confucius (550 b.c. to 479 b.c.)
Back to top
View user's profile Send private message
LiquidCode
Moderator Team


Joined: 05 Dec 2000
Posts: 1753
Location: Space and Time

PostPosted: Wed Jul 22, 2009 5:01 pm    Post subject: Reply with quote

Now that doesn't help me, does it? Rolling Eyes

I did a search, but didn't find anything. I'll look again.

_________________
Chris
Http://theblindhouse.com
Back to top
View user's profile Send private message Send e-mail Visit poster's website
vdsalchemist
Admin Team


Joined: 23 Oct 2001
Posts: 1448
Location: Florida, USA

PostPosted: Thu Jul 23, 2009 8:34 pm    Post subject: Reply with quote

Ok here is the code for the menu and buttons...

Code:

#--------------------------------------------------------------------------------#
#                                                                                #
# Description: Allows you to disable System Menu Items and buttons               #
#                                                                                #
# Author: Johnny Kinsey                                                          #
# Copyright © 2009 DragonSphere Software All Rights Reserved.                    #
#                                                                                #
#--------------------------------------------------------------------------------#
#DEFINE COMMAND,SYSMENUDISABLEITEM
#DEFINE COMMAND,DISABLEMINIMIZEBOX,DISABLEMAXIMIZEBOX,ENABLEMINIMIZEBOX,ENABLEMAXIMIZEBOX

%%WindowID = @winexists(#TMainWin)
#SysMenuDisableItem %%WindowID,RESET
#SysMenuDisableItem %%WindowID,Move
#SysMenuDisableItem %%WindowID,Size
#SysMenuDisableItem %%WindowID,Minimize
#SysMenuDisableItem %%WindowID,Maximize
#SysMenuDisableItem %%WindowID,Close
DisableMinimizeBox %%WindowID
Info Minimize Disabled Check window
#SysMenuDisableItem %%WindowID,RESET
EnableMinimizeBox %%WindowID
Info Minimize Enabled check window
#EnableMaximizeBox %%WindowID


Stop

:DISABLEMINIMIZEBOX
LoadLib user32.dll
%%WS_MINIMIZEBOX = $20000
%%WndStyle = @lib(user32,GetWindowLongA,INT,INT:@strdel(%1,1,1),INT:-16)
%%NewWndStyle = @Diff(%%WndStyle,%%WS_MINIMIZEBOX)
%A = @lib(user32,SetWindowLongA,INT,INT:@strdel(%1,1,1),INT:-16,INT:%%NewWndStyle)
FreeLib user32.dll
Window Activate,%1
Exit

:DISABLEMAXIMIZEBOX
LoadLib user32.dll
%%WS_MAXIMIZEBOX = $10000
%%WndStyle = @lib(user32,GetWindowLongA,INT,INT:@strdel(%1,1,1),INT:-16)
%%NewWndStyle = @Diff(%%WndStyle,%%WS_MAXIMIZEBOX)
%A = @lib(user32,SetWindowLongA,INT,INT:@strdel(%1,1,1),INT:-16,INT:%%NewWndStyle)
FreeLib user32.dll
Window Activate,%1
Exit

:ENABLEMINIMIZEBOX
LoadLib user32.dll
%%WS_MINIMIZEBOX = $20000
%%WndStyle = @lib(user32,GetWindowLongA,INT,INT:@strdel(%1,1,1),INT:-16)
%%NewWndStyle = @Sum(%%WndStyle,%%WS_MINIMIZEBOX)
%A = @lib(user32,SetWindowLongA,INT,INT:@strdel(%1,1,1),INT:-16,INT:%%NewWndStyle)
FreeLib user32.dll
Window Activate,%1
Exit

:ENABLEMAXIMIZEBOX
LoadLib user32.dll
%%WS_MAXIMIZEBOX = $10000
%%WndStyle = @lib(user32,GetWindowLongA,INT,INT:@strdel(%1,1,1),INT:-16)
%%NewWndStyle = @Sum(%%WndStyle,%%WS_MAXIMIZEBOX)
%A = @lib(user32,SetWindowLongA,INT,INT:@strdel(%1,1,1),INT:-16,INT:%%NewWndStyle)
FreeLib user32.dll
Window Activate,%1
Exit



:SysMenuDisableItem
  LoadLib user32.dll
  %%MF_GRAYED = 1
   %%MF_DISABLED = 2
   %%MF_BYPOSITION = $400
   %%MF_BYCOMMAND = 0

  %%SC_RESTORE = $F120
   %%SC_MOVE = $F010   
  %%SC_SIZE = $F000
   %%SC_MINIMIZE = $F020
   %%SC_MAXIMIZE = $F030
   %%SC_CLOSE = $F060   

   
  %%MIIM_CHECKMARKS = 8
   %%MIIM_DATA = 32
   %%MIIM_ID = 2
   %%MIIM_STATE = 1
   %%MIIM_SUBMENU = 4
   %%MIIM_TYPE = 16
   %%MIIM_STRING = $040
   %%MIIM_BITMAP = $080
   %%MIIM_FTYPE = $0100
   
   %%MFT_BITMAP = 4
   %%MFT_MENUBARBREAK = 32
   %%MFT_MENUBREAK = 64
   %%MFT_OWNERDRAW = 256
   %%MFT_RADIOCHECK = 512
   %%MFT_RIGHTJUSTIFY = $4000
   %%MFT_SEPARATOR = $800
   %%MFT_STRING = 0
   %%MFS_CHECKED = 8
   %%MFS_DEFAULT = 4096
   %%MFS_DISABLED = 3
   %%MFS_ENABLED = 0
   %%MFS_GRAYED = 3
   %%MFS_HILITE = 128
   %%MFS_UNCHECKED = 0
   %%MFS_UNHILITE = 0 
   
   %W = @strdel(%1,1,1)
   If @Equal(%2,RESET)
     %%SysMenuHwnd = @lib(user32,GetSystemMenu,INT,INT:%W,BOOL:TRUE)
   Else
    %%SysMenuHwnd = @lib(user32,GetSystemMenu,INT,INT:%W,BOOL:FALSE)
   End
   If @unequal(%%SysMenuHwnd,0)
     If @Equal(%2,Restore)
      %M = @BINARY(DWORD,44)@BINARY(DWORD,@Sum(%%MIIM_STATE,%%MIIM_ID))@BINARY(DWORD,0)@BINARY(DWORD,%%MFS_GRAYED)@BINARY(DWORD,-%%SC_RESTORE)@BINARY(DWORD,0)@BINARY(DWORD,0)@BINARY(DWORD,0)@BINARY(DWORD,0)@BINARY(DWORD,0)@BINARY(DWORD,0)
      %R = @lib(user32,SetMenuItemInfoA,BOOL,INT:%%SysMenuHwnd,INT:%%SC_RESTORE,BOOL:FALSE,INT:@Addr("%M"))
      %R = @lib(user32,DrawMenuBar,BOOL,INT:%%SysMenuHwnd)
      
      ElsIf @Equal(%2,Move)
      %M = @BINARY(DWORD,44)@BINARY(DWORD,@Sum(%%MIIM_STATE,%%MIIM_ID))@BINARY(DWORD,0)@BINARY(DWORD,%%MFS_GRAYED)@BINARY(DWORD,-%%SC_MOVE)@BINARY(DWORD,0)@BINARY(DWORD,0)@BINARY(DWORD,0)@BINARY(DWORD,0)@BINARY(DWORD,0)@BINARY(DWORD,0)
      %R = @lib(user32,SetMenuItemInfoA,BOOL,INT:%%SysMenuHwnd,INT:%%SC_MOVE,BOOL:FALSE,INT:@Addr("%M"))
      %R = @lib(user32,DrawMenuBar,BOOL,INT:%%SysMenuHwnd)
      
      ElsIf @Equal(%2,Size)
      %M = @BINARY(DWORD,44)@BINARY(DWORD,@Sum(%%MIIM_STATE,%%MIIM_ID))@BINARY(DWORD,0)@BINARY(DWORD,%%MFS_GRAYED)@BINARY(DWORD,-%%SC_SIZE)@BINARY(DWORD,0)@BINARY(DWORD,0)@BINARY(DWORD,0)@BINARY(DWORD,0)@BINARY(DWORD,0)@BINARY(DWORD,0)
      %R = @lib(user32,SetMenuItemInfoA,BOOL,INT:%%SysMenuHwnd,INT:%%SC_SIZE,BOOL:FALSE,INT:@Addr("%M"))
      %R = @lib(user32,DrawMenuBar,BOOL,INT:%%SysMenuHwnd)
      
     ElsIf @Equal(%2,Minimize)
      %M = @BINARY(DWORD,44)@BINARY(DWORD,@Sum(%%MIIM_STATE,%%MIIM_ID))@BINARY(DWORD,0)@BINARY(DWORD,%%MFS_GRAYED)@BINARY(DWORD,-%%SC_MINIMIZE)@BINARY(DWORD,0)@BINARY(DWORD,0)@BINARY(DWORD,0)@BINARY(DWORD,0)@BINARY(DWORD,0)@BINARY(DWORD,0)
      %R = @lib(user32,SetMenuItemInfoA,BOOL,INT:%%SysMenuHwnd,INT:%%SC_MINIMIZE,BOOL:FALSE,INT:@Addr("%M"))
      %R = @lib(user32,DrawMenuBar,BOOL,INT:%%SysMenuHwnd)
      ElsIf @Equal(%2,Maximize)
      %M = @BINARY(DWORD,44)@BINARY(DWORD,@Sum(%%MIIM_STATE,%%MIIM_ID))@BINARY(DWORD,0)@BINARY(DWORD,%%MFS_GRAYED)@BINARY(DWORD,-%%SC_MAXIMIZE)@BINARY(DWORD,0)@BINARY(DWORD,0)@BINARY(DWORD,0)@BINARY(DWORD,0)@BINARY(DWORD,0)@BINARY(DWORD,0)@BINARY(DWORD,0)
      %R = @lib(user32,SetMenuItemInfoA,BOOL,INT:%%SysMenuHwnd,INT:%%SC_MAXIMIZE,BOOL:FALSE,INT:@Addr("%M"))
      %R = @lib(user32,DrawMenuBar,BOOL,INT:%%SysMenuHwnd)
      ElsIf @Equal(%2,Close)
      %M = @BINARY(DWORD,44)@BINARY(DWORD,@Sum(%%MIIM_STATE,%%MIIM_ID))@BINARY(DWORD,0)@BINARY(DWORD,%%MFS_GRAYED)@BINARY(DWORD,-%%SC_CLOSE)@BINARY(DWORD,0)@BINARY(DWORD,0)@BINARY(DWORD,0)@BINARY(DWORD,0)@BINARY(DWORD,0)@BINARY(DWORD,0)@BINARY(DWORD,0)
      %R = @lib(user32,SetMenuItemInfoA,BOOL,INT:%%SysMenuHwnd,INT:%%SC_CLOSE,BOOL:FALSE,INT:@Addr("%M"))
      %R = @lib(user32,DrawMenuBar,BOOL,INT:%%SysMenuHwnd)
    End
   End
  FreeLib user32
Exit


Ok this code has been UPDATED... You can now enable and disable the minimize and maximize buttons in doing so Windows will enable the minimize and maximize system menu options for the window. It is strange but this does work for XP. I left the menu code so you could disable the menu options without the buttons being enabled or disabled.

_________________
Home of

Give VDS a new purpose!
Back to top
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger MSN Messenger
LiquidCode
Moderator Team


Joined: 05 Dec 2000
Posts: 1753
Location: Space and Time

PostPosted: Fri Jul 24, 2009 10:52 am    Post subject: Reply with quote

Thank you again! You have been a lot of help. Just disabling the Min button will be enough. Very Happy
_________________
Chris
Http://theblindhouse.com
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Garrett
Moderator Team


Joined: 04 Oct 2001
Posts: 2149
Location: A House

PostPosted: Fri Jul 24, 2009 4:11 pm    Post subject: Reply with quote

See! My old mind was right! there was a way to do this Razz
_________________
'What you do not want done to yourself, do not do to others.' - Confucius (550 b.c. to 479 b.c.)
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    forum.vdsworld.com Forum Index -> General Help All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You can attach files in this forum
You can download files in this forum

Twitter@vdsworld       RSS

Powered by phpBB © 2001, 2005 phpBB Group