我的第一次编写菜单应用程序

我在编写过程中遇到了很多的问题,但在厚脸皮的不断发帖询问下终于代码全部没有问题了,可是。。。

没想到运行的程序不是我想要的样子

以下是我的全部代码,我的资源文件我感觉并没有介入编译过程:

 

这是.cpp

#include <Windows.h>
#include <stdio.h>
#include "8-1.h"

//窗口函数声明
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd ) //入口函数(主函数)
{
 //定义窗口类
 WNDCLASS wndclass;
 wndclass.hInstance = hInstance;//当前应用程序实例句柄
 wndclass.hbrBackground = (HBRUSH)GetStockObject(DKGRAY_BRUSH);//窗口背景色为灰色
 wndclass.hCursor = LoadCursor(NULL,IDC_ARROW);//窗口采用箭头光标
 wndclass.hIcon = LoadIcon(NULL,IDI_APPLICATION);//窗口的最小化图标为默认图标
 wndclass.lpszClassName = "My first windows";//窗口类名
 wndclass.lpszMenuName =NULL;//窗口中无菜单
 wndclass.lpfnWndProc = WndProc;//该窗口的处理函数为MyProc
 wndclass.cbClsExtra = 0;//窗口类无扩展
 wndclass.cbWndExtra = 0;//该窗口实例无扩展
 wndclass.style = CS_HREDRAW | CS_VREDRAW;//该窗口的类型
 if(!RegisterClass(&wndclass)) //注册窗口类
  return 0;
 //创建窗口
 HWND hwnd = CreateWindow(
  "My first windows" //窗口类名
  ,"我的第一个窗口程序" //窗口实例的标题名
  ,WS_OVERLAPPEDWINDOW //窗口的风格
  ,CW_USEDEFAULT
  ,CW_USEDEFAULT //窗口左上角坐标为默认值
  ,CW_USEDEFAULT
  ,CW_USEDEFAULT //窗口的高度和宽度为默认值
  ,NULL //此窗口没有父窗口
  ,NULL //此窗口没有主菜单
  ,hInstance //创建此窗口应用程序的当前句柄
  ,NULL //不使用该值
  );
 ShowWindow(hwnd,SW_NORMAL);//显示窗口
 UpdateWindow(hwnd);//绘制用户区
 //消息循环
 MSG msg;
 while(GetMessage(&msg,NULL,0,0))
 {
  TranslateMessage(&msg);
  DispatchMessage(&msg);
 }
 return 1;//程序终止时将信息返回系统
}

//窗口函数
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
 HMENU hmenu;
 HMENU haddmenu;
 switch(message)
 {
 case WM_COMMAND: //处理菜单消息
  switch(LOWORD(wParam))
  {
  case IDM_ADDMENU: //在主菜单中添加弹出式"统计计算"菜单
   hmenu = GetMenu(hwnd); //获取主菜单句柄
   haddmenu = CreateMenu(); //动态创建菜单
   //在创建的菜单中增加菜单项
   AppendMenu(haddmenu, MF_ENABLED, IDM_QIUHE, "求和(&S)");
   AppendMenu(haddmenu, MF_ENABLED, IDM_FANGCHA, "方差(&F)");
   AppendMenu(haddmenu, MF_ENABLED, IDM_PINGJUNZHI, "平均值(&A)");
   AppendMenu(haddmenu, MF_ENABLED, IDM_JUNFANGGEN, "均方根(&J)");
   //将创建的弹出式菜单插入主菜单中
   InsertMenu(hmenu, 2, MF_POPUP|MF_BYPOSITION, (UINT)haddmenu,
    "统计计算(&C)");
   //相应改变菜单中有关统计计算菜单项的属性
   EnableMenuItem(hmenu, IDM_ADDMENU, MF_GRAYED);
   EnableMenuItem(hmenu, IDM_DELMENU, MF_ENABLED);
   DrawMenuBar(hwnd); //重新显示窗口菜单
   break;
  case IDM_DELMENU: //从主菜单中删除弹出式"统计计算"菜单
   hmenu=GetMenu(hwnd);
   DeleteMenu(hmenu, 2, MF_BYPOSITION); //删除"统计计算"菜单
   //相应改变“文件”菜单中有关统计计算菜单项的属性
   EnableMenuItem(hmenu, IDM_ADDMENU, MF_ENABLED);
   EnableMenuItem(hmenu, IDM_DELMENU, MF_GRAYED);
   DrawMenuBar(hwnd); //重新显示窗口菜单
   break;
  case IDM_EXIT:
   SendMessage(hwnd, WM_DESTROY, 0, 0);
   break;
  }
  break;
 case WM_DESTROY:
  PostQuitMessage(0); //调用PostQuitMessage 发出WM_QUIT 消息
 default:
  return DefWindowProc(hwnd, message, wParam, lParam); //系统默认处理函数
 }
 return 0;
}

 

这是.h

#ifndef MENU_1_H
#define MENU_1_H
#define IDM_ADDMENU 15
#define IDM_DELMENU 16
#define IDM_EXIT 17
#define IDM_HELP 22
#define IDM_QIUHE 23
#define IDM_FANGCHA 24
#define IDM_PINGJUNZHI 25
#define IDM_JUNFANGGEN 26
#endif

 

这是.rc

// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
/
// 中文(简体,中国) resources

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
#pragma code_page(936)

/
//
// Menu
//

MENU MENU
BEGIN
    POPUP "文件(&F)"
    BEGIN
        MENUITEM "创建统计计算菜单项(&P)\t Ctrl+P",      IDM_ADDMENU
        MENUITEM "删除统计计算菜单项(&D)\t Ctrl+D",      IDM_DELMENU, GRAYED
        MENUITEM SEPARATOR
        MENUITEM "退出(&X) \t Ctrl+X",            IDM_EXIT
    END
    MENUITEM "帮助(&H)",                      IDM_HELP
END


/
//
// Accelerator
//

MENU ACCELERATORS
BEGIN
    "^P",           IDM_ADDMENU,            ASCII  
    "^D",           IDM_DELMENU,            ASCII  
    "^X",           IDM_EXIT,               ASCII  
END


#ifdef APSTUDIO_INVOKED
/
//
// TEXTINCLUDE
//

1 TEXTINCLUDE
BEGIN
    "resource.h\0"
END

2 TEXTINCLUDE
BEGIN
    "\0"
END

3 TEXTINCLUDE
BEGIN
    "\r\n"
    "\0"
END

#endif    // APSTUDIO_INVOKED

#endif    // 中文(简体,中国) resources
/

 

#ifndef APSTUDIO_INVOKED
/
//
// Generated from the TEXTINCLUDE 3 resource.
//


/
#endif    // not APSTUDIO_INVOKED

 

真心希望能有人帮我解决一下!!!纠结一天了。。。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值