学习C++应用1

本文介绍了一个使用C++实现的简单图形用户界面程序,该程序集成了音乐播放与暂停功能,并通过鼠标与键盘交互控制。文章展示了如何利用图形库绘制界面元素、加载图片背景、播放指定音乐以及响应用户的输入操作。

/*application 1*/
#include <graphics.h>//图形库
#include <iostream>
#include <String>
#include<mmsystem.h> //播放音乐头文件
#include "lesson 1.h"
#pragma comment (lib,"winmm.lib")//无需加;播放音乐需导入库文件

using namespace std;

int main()
{
    // 初始化图形窗口
    initgraph(600, 400 , EW_SHOWCONSOLE);
    loadimage(NULL, _T("黑客下载.JPG"));

    //画笔画框
    setlinecolor(RGB(255,242,0));
    //文字颜色、样式
    settextcolor(YELLOW);
    settextstyle(40, 0, _T("微软雅黑"));

    for (char i = 0; i < 5; i++)
    {
        char X0 = 35, X1 = 85, interval=70;//间隔
        rectangle(330, (35+(i*interval)), 570, (85+(i*interval)));

        const wchar_t* Str = L"";//字符类型
        switch (i)
        {
        case 0:
            Str = L"播放音乐"; break;
        case 1:
            Str = L"暂停音乐"; break;
        case 2:
            Str = L"画圆"; break;
        case 3:
            Str = L"画线"; break;
        case 4:
            Str = L"退出"; break;
        default:
            break;
        }
        outtextxy(335, (40+(i*interval)), Str);//输出字符串
        Sleep(1* 100);//延迟函数
    }

    ExMessage m;//定义1个消息变量
    //文字颜色、样式
    settextcolor(WHITE);
    settextstyle(20, 0, _T("微软雅黑"));
    
    while (true)
    {
        while (peekmessage(&m, EM_MOUSE | EM_KEY))//鼠标与按键消息触发
        {
            //创建宽字符型
            wstring clear = _T("                          ");//清理底层
            wstring Str = to_wstring(m.x) + _T(",") + to_wstring(m.y);//输出物理坐标X,Y
            //清理上一次输出字符
            outtextxy(0, 360, clear.c_str());
            outtextxy(0, 380, clear.c_str());

            cout << m.x << "," << m.y << endl;//测试使用
            
            mciSendString(_T("open 爱一点.mp3 Alias Music1"), 0, 0, 0);//打开文件并定义别名为Music1
            
            switch (m.message)
            {
            case WM_MOUSEMOVE://鼠标移动消息
                outtextxy(0, 360, _T("鼠标移动中"));
                outtextxy(0, 380, Str.c_str());

                break;//输出字符串

            case WM_LBUTTONDOWN://左键按下消息
                outtextxy(0, 360, _T("左键按下"));        

                break;//输出字符串

            case WM_KEYDOWN://按键按下消息
                outtextxy(0, 360, _T("按键按下"));        
                
                if (m.vkcode == VK_ESCAPE)//esc
                    return 0;    //
                else if(m.vkcode == 0x08)//Backspace
                    mciSendString(_T("pause Music1"), 0, 0, 0);//暂停音乐;
                else if (m.vkcode == 0x0D)//Enter
                    mciSendString(_T("play Music1 repeat"), 0, 0, 0);//循环播放音乐
                else if (m.vkcode == 0x5A)//Z
                    closegraph();// 关闭图形窗口

                break;//输出字符串

            }
        }        

    }

}
 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值