不用MFC,用纯C++,按照以下模式,如何添加一个菜单,
又如何响应菜单中命令(假设命令ID为:ID_TEST1)。#include <windows.h>HINSTANCE ghInst = NULL;
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int);LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_CREATE:
break;        
case WM_DESTROY:
PostQuitMessage(0);
break;
default:return DefWindowProc(hwnd,message,wParam,lParam);
}
return FALSE;
}
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance, LPSTR lpCmdLine,
                                                                    int nCmdShow)
{
WNDCLASS wc;
MSG msg;
HWND ghWnd = NULL;

ghInst = hInstance;
wc.style = CS_HREDRAW|CS_VREDRAW;
//...定制wc属性略
RegisterClass(&wc);
ghWnd = CreateWindow(szAppName, szAppTitle,WS_OVERLAPPEDWINDOW, 0, 0, 400,350,
 NULL,NULL, hInstance,NULL);
if(ghWnd == NULL)
return 0;
ShowWindow(ghWnd,nCmdShow);
UpdateWindow(ghWnd);

while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}

解决方案 »

  1.   


    case WM_COMMAND:
    switch(LOWORD(wParam)) {
    case ID_TEST1:
    //
    break;
    }
    break;
      

  2.   

    系统提示ID_TEST1没定义,怎么定义,我已经在菜单资源中添加了ID_TEST1菜单命令
      

  3.   

    #define ID_TEST1 1000
    HMENU hMenu = CreateMenu(VOID);  // 创建一个菜单MENUITEMINFO mii;
    mii.cbSize = sizeof(mii);
    mii.fMask = MIIM_STRING | MIIM_FTYPE;
    mii.fType = MFT_STRING;
    mii.dwTypeData = _T("Test1");
    mii.cch = lstrlen(mii.dwTypeData);
    InsertMenuItem( hMenu, ID_TEST1, FALSE, &mii);   //添加一个菜单项
    响应:
    case WM_COMMAND:
        switch( LOWORD( wParam ) )
        {
            case ID_TEST1:
            break;
        }
        break;