View previous topic :: View next topic |
Author |
Message |
X-Tools Valued Contributor
Joined: 20 Sep 2001 Posts: 296 Location: Germany
|
Posted: Thu Aug 21, 2003 8:37 am Post subject: |
|
|
Hi mindpower,
can you explain me a little bit more ?
I tried the following code:
Code: |
LOADLIB user32.dll
%%menuBar = @lib(user32.dll,GetMenu,INT:,@strdel(@winexists(#PI),1,1))
%%dateiMenu = @lib(user32.dll,GetSubMenu,INT:,%%menubar,0)
%%einstellungenMENU = @lib(user32.dll,GetSubMenu,INT:,%%menubar,7)
%%dummy = @lib(user32.dll,RemoveMenu,BOOL:,%%menuBar,7,MF_BYPOSITION)
info %%einstellungenMENU@cr()%%dummy
%%dummy = @lib(user32.dll,DrawMenuBar,BOOL:,%%menuBar)
|
The Menu Number 7 should be removed, but it does not.
Do you know where my mistake is ?
Thank you very much.
Bye, Fabian |
|
Back to top |
|
|
vdsalchemist Admin Team
Joined: 23 Oct 2001 Posts: 1448 Location: Florida, USA
|
Posted: Thu Aug 21, 2003 2:13 pm Post subject: |
|
|
Hi X-Tools,
I didn't know that VDS would reconize a constant directly like this? MF_BYPOSITION should be a variable that is defined with a numeric value.
The value for MF_BYPOSITION should be the number 0...
Also the @lib() function just needs the name of the DLL with out the Extension.
Also if these changes do not work then prefix the variable type for the arguments of the functions like so...
Code: | %%MF_BYPOSITION = $400
%%dummy = @lib(user32,RemoveMenu,BOOL:,%%menuBar,INT:7,INT:%%MF_BYPOSITION) |
_________________ Home of
Give VDS a new purpose!
Last edited by vdsalchemist on Fri Aug 22, 2003 12:41 pm; edited 1 time in total |
|
Back to top |
|
|
X-Tools Valued Contributor
Joined: 20 Sep 2001 Posts: 296 Location: Germany
|
Posted: Thu Aug 21, 2003 3:29 pm Post subject: |
|
|
Hi,
thanks for your answer.
But the help file says:
Code: | BOOL RemoveMenu(
HMENU hmenu, // handle of menu
UINT uItem, // menu item identifier or position
UINT fuFlags // menu item flag
);
Parameters
hmenu
Identifies the menu to be changed.
uItem
Specifies the menu item to be deleted, as determined by the fuFlags parameter.
fuFlags
Specifies how the uItem parameter is interpreted. This parameter must be one of the following values:
Value Meaning
MF_BYCOMMAND Indicates that uItem gives the identifier of the menu item. If neither the MF_BYCOMMAND nor MF_BYPOSITION flag is specified, the MF_BYCOMMAND flag is the default flag.
MF_BYPOSITION Indicates that uItem gives the zero-based relative position of the menu item. |
So I thought MF_BYCOMMAND and MF_BYPOSITION are parameters. |
|
Back to top |
|
|
CodeScript Moderator Team
Joined: 08 Jun 2003 Posts: 1060 Location: India
|
Posted: Fri Aug 22, 2003 3:48 am Post subject: |
|
|
X-Tools wrote: | But the help file says: |
I think you are refering only W32.Hlp file. It gives you constants in the form of MF_BYPOSITION etc, It's fine if You are in Delphi/C/C++ as the values for these are already defined there in the header(.h or .hpp) files. But in languages like VB and VDS
you have to feed the constant values yourself.
W32.hlp doesn't have it.
So you have to look for alternatives :
Windows header files from C++/delphi (.pas ?)
API text viewer that comes with VB.
API viewers and similar references written by 3rd parties
E.g. API Viewer 2003. (I recommend it; as I hardly failed to find a declare/constant in that).
As for deleting a menu I thought it would be too simple and removed it in the final version I posted .
As far as I remember I posted a script that "deletes items from the system menu" and disables close button.
Regards _________________ Regards
- CodeScript
Give your application a professional look with the VDSGUI Extension |
|
Back to top |
|
|
ShinobiSoft Professional Member
Joined: 06 Nov 2002 Posts: 790 Location: Knoxville, Tn
|
Posted: Fri Feb 11, 2005 6:40 pm Post subject: |
|
|
Skit,
Even after writing SSMenu.Dll I found that I ran into instances where I
needed to load a menu's description from a text file. There is a way to
go about this while using only 3 variables. You say that %1 aND %2 are
used already, so %3 could be used like %%string is here.
Code: |
list create,1
list loadtext,1
"Item 1
"Item 2
"Item 3
"Item 4
"Item 5
"Item 6
"Item 7
"Item 8
"Item 9
%x = 0
%%string =
repeat
%I = @item(1,%x)
if @not(@null(%I))
%%string = %%string%I@chr(0)
end
%x = @succ(%x)
until @equal(%x,@count(1))
dialog create,Dialog,-1,0,300,200
dialog add,MENU,&File,%%string
dialog show
:Evloop
wait event
%E = @event()
if @equal(%E,CLOSE)
goto %E
end
goto Evloop
:CLOSE
exit
|
_________________ Bill Weckel
ShinobiSoft Software
"The way is known to all, but not all know it." |
|
Back to top |
|
|
|
|
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
|
|