一、实验目的和要求
1、 使用API函数编制包含各种资源的Windows应用程序;
2、 实现Windows应用程序对键盘与鼠标的响应。
二、实验内容 :
1、问题描述:
创建一个菜单,其中有三个菜单项,分别为“文件”、“计算”和“帮助”,其中,“文件”菜单项包含“打开”、“保存”、“画图”、“退出”等菜单选项;“计算”菜单包含“总和”、“方差”、“均方根”等菜单选项;“帮助”菜单项包含“计算总和帮助”、“计算方差帮助”和“计算均方根帮助”以及“关于”等项 。
若单击“画图”菜单项,则绘出如下图形。若在用户区内按下鼠标左键,则动态创建一个包括“删除计算总和”、“添加计算平均值”和“修改计算均方差”三个菜单项的弹出式菜单,由此菜单控制“计算”菜单中菜单项删除、添加与修改。(要求新的弹出式菜单开始时不可用,按下右键后变为可用。) 单击“修改计算均方差”菜单项后,“计算”菜单下的“计算均方差”项改为“线性拟合”,单击“添加计算平均值”菜单项后,“计算”菜单中添加上了“计算平均值”菜单项 。
将光标设定为自己名字中的某个字、图标设定为自己名字中的另一个字。
2、应用程序中所用到的资源、消息,简介主要函数的功能;
3、程序实现 4、操作结果
三、程序代码(所有,包括资源文件的可视编辑图)
四、运行结果及分析
主函数代码如下:
#include <windows.h>
#include "实验二.h"
HINSTANCE hInst;
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
BOOL CALLBACK DlgProc(HWND, UINT, WPARAM, LPARAM);
static int Paint = 0, flag = 0, flags = 0;
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
HACCEL hAccel;
WNDCLASSEX wcex;
HWND hWnd;
MSG msg;
TCHAR lpszMenuName[] = L"Menu";
TCHAR lpszClassName[] = L"模态对话框";
TCHAR lpszTitle[] = L"2020316101099_黄晶晶_实验贰";
//------------------------------以下初始化窗口类------------------------------
wcex.cbSize = sizeof(WNDCLASSEX); //窗口类的大小
wcex.style = 0; //窗口类型为默认类型
wcex.lpfnWndProc = WndProc; //窗口处理函数为WndProc
wcex.cbClsExtra = 0; //窗口类无扩展
wcex.cbWndExtra = 0; //窗口实例无扩展
wcex.hInstance = hInstance; //当前实例句柄
// wcex.hIcon = LoadIcon(NULL, MAKEINTRESOURCE(IDR_MAINFRAME)); //窗口的图标为默认图标
wcex.hIcon = LoadIcon(NULL, MAKEINTRESOURCE(IDI_APPLICATION));
wcex.hCursor = LoadCursorFromFile(L"自定义.cur"); //窗口采用箭头光标
// wcex.hCursor = LoadCursor(NULL, MAKEINTRESOURCE(IDC_ARROW));
wcex.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); //窗口背景为白色
wcex.lpszMenuName = lpszMenuName; //窗口中无菜单
wcex.lpszClassName = lpszClassName; //窗口类名为“窗口示例”
wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDR_MAINFRAME)); //窗口的小图标为默认图标
// wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
//------------------------------以下进行窗口类的注册------------------------------
if (!RegisterClassEx(&wcex)) //如果注册失败则发出警告
{
MessageBox(NULL, L&#