Menu

Posted butchert

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Menu相关的知识,希望对你有一定的参考价值。

#include "windows.h"
#include "resource.h"

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
HMENU hm;

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine, int iCmdShow)        
{
    static TCHAR szAppName[] = TEXT ("HelloWin") ;   
    HWND        hwnd ;     
    MSG            msg ;     
    WNDCLASS    wndclass ;
    
    hm=CreateMenu();
    HMENU hm1=CreatePopupMenu();
    AppendMenu(hm,MF_POPUP|MF_STRING,(UINT)hm1,"File");
    AppendMenu(hm1,MF_POPUP,1001,"New");
    AppendMenu(hm1,MF_STRING,1002,"Close");
    AppendMenu(hm1,MF_STRING,1003,"Exit");

    HMENU hm2=CreatePopupMenu();
    AppendMenu(hm,MF_POPUP|MF_STRING,(UINT)hm2,"Edit");
    AppendMenu(hm2,MF_STRING,(UINT)hm2,"Copy");
    AppendMenu(hm2,MF_STRING,(UINT)hm2,"Paste");

    wndclass.style            =    CS_HREDRAW | CS_VREDRAW ;    
    wndclass.lpfnWndProc    =    WndProc ;  
    wndclass.cbClsExtra        =    0 ;
    wndclass.cbWndExtra        =    0 ;  
    wndclass.hInstance        =    hInstance ;
    wndclass.hIcon            =    LoadIcon (NULL, IDI_APPLICATION) ;    
    wndclass.hCursor        =    LoadCursor (NULL, IDC_ARROW) ;   
    wndclass.hbrBackground    =    (HBRUSH) GetStockObject (WHITE_BRUSH) ;  
    wndclass.lpszMenuName    =    NULL;
    wndclass.lpszClassName    =    szAppName ;
    if (!RegisterClass (&wndclass)) 
    {
        MessageBox (  NULL, TEXT ("This program requires Windows NT!"), szAppName, MB_ICONERROR);
        return 0 ;    
    } 
    hwnd=CreateWindow(szAppName,      // window class name
        TEXT ("The Hello Program"),   // window caption
        WS_OVERLAPPEDWINDOW,  // window style
        CW_USEDEFAULT,// initial x position
        CW_USEDEFAULT,// initial y position
        CW_USEDEFAULT,// initial x size
        CW_USEDEFAULT,// initial y size
        NULL,                 // parent window handle
        hm,            // window menu handle
        hInstance,   // program instance handle
        NULL) ;      // creation parameters
    ShowWindow (hwnd, iCmdShow);
    UpdateWindow (hwnd);   
    while (GetMessage (&msg, NULL, 0, 0))
    {
        TranslateMessage (&msg) ;
        DispatchMessage (&msg) ; 
    }
    return msg.wParam ;
}

LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)   
{
    switch (message) 
    {
    case WM_CREATE:    
        return 0;
    case   WM_PAINT:
        return 0 ;  
    case WM_COMMAND:
        switch (LOWORD(wParam))
        {
        case 1001:
            MessageBox(NULL,"New","1001",MB_OK);
            break;
        case 1002:
            MessageBox(NULL,"Close","1002",MB_OK);
            break;
        case 1003:
            MessageBox(NULL,"Exit","1003",MB_OK);
            break;
        }
        return 0;
    case   WM_DESTROY:
        PostQuitMessage (0) ;
        return 0;
    }
    return DefWindowProc (hwnd, message, wParam, lParam) ;      
}

 

以上是关于Menu的主要内容,如果未能解决你的问题,请参考以下文章

Operator '||' cannot be applied to operands of type 'bool?' and 'bool?'(代码片段

Operator '||' cannot be applied to operands of type 'bool?' and 'bool?'(代码片段

从片段将菜单添加到活动支持工具栏

在活动OnCreate中加载片段

菜单在片段中不可见

多片段层次结构中的菜单膨胀问题