示例:
部分代码:
//创建顶层菜单
HMENU hTop = CreateMenu();
AppendMenu(hTop, MF_STRING, 520, L"文件");
AppendMenu(hTop, MF_STRING, 521, L"工具");
//创建弹出菜单
HMENU hPopup = CreatePopupMenu();
AppendMenu(hPopup, MF_STRING, 522, L"打开");
AppendMenu(hPopup, MF_SEPARATOR, NULL, NULL);//插入一个分割条
AppendMenu(hPopup, MF_STRING, 523, L"新建");
//将子菜单添加到顶层菜单上
AppendMenu(hTop, MF_POPUP,(UINT_PTR)hPopup, L"打开2");
//2.创建窗口
HWND hwnd = CreateWindow(szName, L"Ty", WS_OVERLAPPEDWINDOW | WS_VISIBLE, 0, 0, 600, 400, NULL, hTop, hInstance, 0);
//3.显示窗口
结果:
可以使用这个函数来为窗口指定一个菜单,代码如下,在WM_CREATE中创建:
case WM_CREATE:
{
//创建顶层菜单
HMENU hTop = CreateMenu();
//创建弹出菜单
HMENU hPopup = CreatePopupMenu();
AppendMenu(hPopup, MF_STRING, 522, L"打开");
AppendMenu(hPopup, MF_SEPARATOR, NULL, NULL);//插入一个分割条
AppendMenu(hPopup, MF_STRING, 523, L"新建");
//将子菜单添加到顶层菜单上
AppendMenu(hTop, MF_POPUP, (UINT_PTR)hPopup, L"打开");
SetMenu(hwnd, hTop);
//调用时机:窗口创建成功,CreateWindow返回前调用
LPCREATESTRUCT pc = (LPCREATESTRUCT)lparam;
HWND hstatic = CreateWindow(L"static", L"这是一个静态文本", WS_CHILD | WS_VISIBLE, 10, 10, 150, 55, hwnd, (HMENU)111, pc->hInstance, 0);
HWND hstatic1 = CreateWindow(L"static", L"这是一个静态文本", WS_CHILD | WS_VISIBLE, 10, 80, 150, 55, hwnd, (HMENU)112, pc->hInstance, 0);
}
代码: