2011-04-04 137 views
0

我想創建移動6.x的菜單欄,這裏是我使用的代碼:創建菜單欄

RESOURCE.H

#pragma once 

#include <aygshell.h> 

#define IDI_APP_ICON 1 
#define IDR_MENU  100 

#define IDS_APP_TITLE 101 
#define IDS_EXIT  102 
#define IDS_SEARCH 103 
#define IDS_SETTINGS 104 
#define IDS_HELP  105 

#define IDM_EXIT  200 
#define IDM_SEARCH 201 
#define IDM_SETTINGS 202 
#define IDM_HELP  203 
#define ID_HELP_ABOUT 204 

和資源文件看起來像這樣:

#include "Resource.h" 

IDI_APP_ICON ICON "AppIcon.ico" 


STRINGTABLE 
BEGIN 
    IDS_APP_TITLE "My App" 
    IDS_EXIT  "Exit" 
    IDS_SEARCH "Search" 
    IDS_SETTINGS "Settings" 
    IDS_HELP  "Help" 
END 

IDR_MENU MENU 
BEGIN 
    POPUP "Help" 
    BEGIN 
     MENUITEM "About", ID_HELP_ABOUT 
    END 
END 

IDR_MENU SHMENUBAR DISCARDABLE 
BEGIN 
    IDR_MENU, 
    4, 

    I_IMAGENONE, IDM_EXIT, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, IDS_EXIT, 0, NOMENU, 
    I_IMAGENONE, IDM_SEARCH, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, IDS_SEARCH, 0, NOMENU, 
    I_IMAGENONE, IDM_SETTINGS, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, IDS_SETTINGS, 0, NOMENU, 
    I_IMAGENONE, IDM_HELP, TBSTATE_ENABLED, TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE, IDS_HELP, 0, 0, 
END 

,這裏是我在性反應做WM_CREATE

SHMENUBARINFO mbi; 

memset(&mbi, 0, sizeof(SHMENUBARINFO)); 
mbi.cbSize  = sizeof(SHMENUBARINFO); 
mbi.hwndParent = hParent; // handle to the main window 
mbi.nToolBarId = IDR_MENU; 
mbi.hInstRes = g_hInst; 
mbi.dwFlags = SHCMBF_HMENU | SHCMBF_HIDESIPBUTTON; 

if (SHCreateMenuBar(&mbi)) 
    g_hWndMenuBar = mbi.hwndMB; 
else 
    g_hWndMenuBar = NULL; 

但只有幫助菜單出現在左側。有誰知道爲什麼?

+1

什麼是「手機6」? – 2011-04-04 15:29:37

回答

0

我找到了答案。事實證明,SHMENUBAR不是由資源編譯器定義的,如果使用嚮導創建項目,如果將#define SHMENUBAR RCDATA添加到項目中。我所要做的就是用RCDATA取代SHMENUBAR。