我自己编的rc文件,菜单名不需要加引号,但插入资源被VC转化,加了很多垃圾代码,结果调用
   hMenu=LoadMenu(hCurInstance,"IDR_MYCOLOR");
后,窗口居然没有菜单,将rc文件中菜单IDR_MYCOLOR 加“”后就可以了!但将VC加的代码去掉后就可不要引号!有高手会解决这个问题吗?或者解析下原因也好!

解决方案 »

  1.   

    资源的ID可以是一个字符串(带引号),也可以是一个整型数,vc中多用宏定义把一个类似IDC_XXXXX的符号宏定义为一个整数,然后在用到整型ID的时候用这个符号(不带引号).
     
    据我所知,vc是会对资源脚本做一定的修改,但是肯定和有没有引号没有关系,LoadMenu函数的第二个参数是一个表示资源的字符串,也就是必须用前面提及的第一种方式表示资源,即代引号的,所以你的脚本里必须把资源定义为字符串形式。
      

  2.   

    看来我没说清楚!
    我的问题是:用文本看的话它的菜单定义如下:
    IDR_MYPOLY MENU DISCARDABLE 
    BEGIN
        POPUP "画图(&P)"
        BEGIN
            MENUITEM "画圆(&C)",                    IDM_CIRCLE
            MENUITEM "画线(&L)",                    IDM_LINE
            MENUITEM "画矩形(&R)",                  IDM_RECTANGLE
            MENUITEM SEPARATOR
            MENUITEM "退出(&X)",                    IDM_EXIT
        END
        POPUP "颜色(&Y)"
        BEGIN
            MENUITEM "红色",                        IDM_RED
            MENUITEM "绿色",                        IDM_BLUE
        END
        POPUP "帮助"
        BEGIN
            MENUITEM "关于本程序!",                IDM_MYHELP
        END
    END我在工作区;发现其显示菜单"IDR_MYPOLY ",双击后发现其ID为"IDR_MYPOLY ",直接改成IDR_MYPOLY 运行OK,但不显示菜单,将VC工具在resource.h加的代码全去掉就好了
    请问,这是为什么?我需要详细的解析,或者告诉我如何去掉“”的方法!即,用过工具加一菜单,其ID为IDR_MENU1,如何让LoadMenu()有效!
      

  3.   

    hMenu=LoadMenu(hCurInstance,MAKEINTRESOURCE(IDR_MYCOLOR));
      

  4.   

    thanks,and i have solved the problem!