主题:  滨滨、ROCK大侠!请进来邦一下忙!谢谢

dreamexpress_5d

职务:普通成员
等级:1
金币:10.0
发贴:2229
#12003/7/11 14:55:13
下载了一个POPmenu的UCD,居然用不起来,请看一下以下代码!(请先调用我上传的BUDMENU。U32)
相关文件:点这儿打开
-----------------------------------------------------------------------------
SelectMenu := mCreatePopupMenu()
ok := mAppendMenu( SelectMenu , MF_CHECKED , 100 , "Introduction" )
ok := mAppendMenu( SelectMenu , MF_SEPARATOR , 0 , "" )
------------------------------------------------------------------------------

按照其HLP文件应该是这样,但其中的MF_CHECKED 和MF_SEPARATOR 居然被AW认未是变量!要求输入初始值,这显然是我做的不正确。

以下是HLP文件中的内容:
------------------------
Adding menu items
The function mAppendMenu adds menu items to the menu. For example:

ok := mAppendMenu( Menu, Flags , MenuID , MenuText )

Menu is the handle of the menu to add to.
Flags provides information about the menu item. Possible values include:

MF_CHECKED     Places a check mark next to the item
    MF_DISABLED     Disables the item
    MF_GRAYED     Disables and grays the item
    MF_POPUP     Creates a sub-menu
    MF_SEPARATOR    Creates a separator bar

MenuID is a number to identify the menu. Each menu item must have a unique number.
MenuText is the text to appear in the menu.


The function returns false if it fails.

Examples:
ok := mAppendMenu( SelectMenu , MF_CHECKED , 100 , "Introduction" )
ok := mAppendMenu( SelectMenu , MF_SEPARATOR , 0 , "" )

subMenu := mCreatePopupMenu() -- create a submenu
ok := mAppenMenu( SubMenu , 0 , 200 , "Module 1" ) -- add item to submenu
ok := mAppendMenu( SelectMenu , MF_POPUP , SubMenu , "Module number") -- attach submenu

See the Windows API functions AppendMenu and InsertMenu functions for more details.
---------------------------------
其是的 Flags 参数该怎么填?按说明直接填“MF_CHECKED”,被解释为新变量。那怎么办?是不是与WINDOWS的API函数的参数有关??

编辑历史:[这消息被dreamExpress编辑过(编辑时间2003-07-11 15:00:03)]
[这消息被dreamExpress编辑过(编辑时间2003-07-11 15:15:05)]


dreamexpress_5d

职务:普通成员
等级:1
金币:10.0
发贴:2229
#22003/7/11 15:17:21
buddy api的问题呀!大侠,请回答一下这个问题吧!



zhouyufeng20

职务:普通成员
等级:1
金币:0.0
发贴:27
#32003/7/11 15:17:38
看不懂,一点都看不懂



dreamexpress_5d

职务:普通成员
等级:1
金币:10.0
发贴:2229
#42003/7/11 15:34:04
顶一下!版主邦快来呀!



滨滨

职务:版主
等级:4
金币:13.0
发贴:1931
#52003/7/12 2:15:09
buddy menu?很老的东东了.没用过.好象有例子的吧.
那几个变量是Windows SDK定义的吧.
这是从VC的头文件里COPY来的,你自己查吧.
注意是16进制.

/* ;win40 -- A lot of MF_* flags have been renamed as MFT_* and MFS_* flags */
/*
* Menu flags for Add/Check/EnableMenuItem()
*/
#define MF_INSERT 0x00000000L
#define MF_CHANGE 0x00000080L
#define MF_APPEND 0x00000100L
#define MF_DELETE 0x00000200L
#define MF_REMOVE 0x00001000L

#define MF_BYCOMMAND 0x00000000L
#define MF_BYPOSITION 0x00000400L

#define MF_SEPARATOR 0x00000800L

#define MF_ENABLED 0x00000000L
#define MF_GRAYED 0x00000001L
#define MF_DISABLED 0x00000002L

#define MF_UNCHECKED 0x00000000L
#define MF_CHECKED 0x00000008L
#define MF_USECHECKBITMAPS 0x00000200L

#define MF_STRING 0x00000000L
#define MF_BITMAP 0x00000004L
#define MF_OWNERDRAW 0x00000100L

#define MF_POPUP 0x00000010L
#define MF_MENUBARBREAK 0x00000020L
#define MF_MENUBREAK 0x00000040L

#define MF_UNHILITE 0x00000000L
#define MF_HILITE 0x00000080L

#if(WINVER >= 0x0400)
#define MF_DEFAULT 0x00001000L
#endif /* WINVER >= 0x0400 */
#define MF_SYSMENU 0x00002000L
#define MF_HELP 0x00004000L
#if(WINVER >= 0x0400)
#define MF_RIGHTJUSTIFY 0x00004000L
#endif /* WINVER >= 0x0400 */

#define MF_MOUSESELECT 0x00008000L
#if(WINVER >= 0x0400)
#define MF_END 0x00000080L /* Obsolete -- only used by old RES files */
#endif /* WINVER >= 0x0400 */



hw26

职务:普通成员
等级:1
金币:11.0
发贴:240
#62003/7/12 10:41:47
MF_CHECKED 和MF_SEPARATOR 居然被AW认未是变量!要求输入初始值

它们本来就是变量



dreamexpress_5d

职务:普通成员
等级:1
金币:10.0
发贴:2229
#72003/7/12 22:21:28
首先谢谢版主了!
楼上的这位兄弟,当然它是变量了,不过似乎不应是自定义变量吧?要知道AW要我输入初始值,这根本不对。按我的理解MF_CHECKED与MF_SEPARATOR 应在我LOAF UCD函数后就该是“系统变量”了,要知道下面根本就没有改变这二个变量的地方!那我想它的初始值也许是不能随便给的,那该给它什么值呢?也许版主给的提示文字有用,待我慢慢研究一下!

再次谢谢版主了!



syzy

职务:普通成员
等级:1
金币:4.0
发贴:131
#82003/7/14 9:46:54
对于AW来说MF_CHECKED与MF_SEPARATOR就是自定义变量,至于他们的取值可以用VB提供的API文本浏览器查到,注意一下十六进制与十进制的转换。



魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
#92003/7/14 10:45:03
dreamexpress在上个帖子中说
引用:
首先谢谢版主了!
楼上的这位兄弟,当然它是变量了,不过似乎不应是自定义变量吧?要知道AW要我输入初始值,这根本不对。按我的理解MF_CHECKED与MF_SEPARATOR 应在我LOAF UCD函数后就该是“系统变量”了,要知道下面根本就没有改变这二个变量的地方!那我想它的初始值也许是不能随便给的,那该给它什么值呢?也许版主给的提示文字有用,待我慢慢研究一下!

再次谢谢版主了!



MF_CHECKED之类的是API的一些常量。。其实也是UCD的开发者没有完全封装到傻瓜的方式



dreamexpress_5d

职务:普通成员
等级:1
金币:10.0
发贴:2229
#102003/7/14 11:53:14
呵呵,我这个傻瓜找不到填入的值,多谢指教!