吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2264|回复: 9
收起左侧

[C&C++ 转载] C语言也能干大事part~7

  [复制链接]
gms 发表于 2020-11-9 18:11
本帖最后由 gms 于 2020-11-10 13:22 编辑

一. 如何实现打开功能

1. 控件如下:

1.png

2. 代码如下:【了解即可】

#include <commdlg.h>    //头文件不能少

void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
    switch(id)
    {
        case IDC_OK:
   OPENFILENAME ofn;

  char szFile[MAX_PATH];  //定义一个长度为 MAX_PATH 的 char 数组

  ZeroMemory(&ofn,sizeof(ofn));  

  ofn.lStructSize = sizeof(ofn); //szFile 是一个字符数组,那么 szFile 这个名字就代表这个字符数组的首地址

  ofn.lpstrFile = szFile;

  ofn.lpstrFile[0] = TEXT('\0');

  ofn.nMaxFile = sizeof(szFile);

  ofn.lpstrFilter = TEXT("ALL\0*.*\0Text\0*.TXT\0"); //文件类型过滤器

  ofn.nFilterIndex = 1;   //ofn.nFilterIndex = 2;默认选择第几个过滤器,是 1 开始的,不是 0. 这也是试验出来的。

  ofn.lpstrFileTitle = NULL;

  ofn.nMaxFileTitle = 0;

  ofn.lpstrInitialDir = NULL;

  ofn.hwndOwner = hwnd;

  ofn.Flags = OFN_EXPLORER |OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;

  if (GetOpenFileName(&ofn)) //用户关闭对话框,GetOpenFileName 函数返回,返回值是 BOOL,等于TRUE 表示用户选择了文件,如果等于 FALSE 就表示用户选择了【取消】按钮

  {

   MessageBox(NULL,szFile,"",MB_OK);

  }

        break;
        default:
  break;
    }
}

3. 运行结果:

2.png

二. 音乐播放器

1. 控件如下:

3.png

2. 代码如下:

#include "stdafx.h"
#include <windows.h>
#include <windowsx.h>
#include "resource.h"
#include "MainDlg.h"
#include <stdlib.h>
#include <stdio.h>
#include <commdlg.h>
#include <mmsystem.h>
#pragma comment(lib, "WINMM.LIB")

void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
    switch(id)
    {
        case IDC_OK:
  {

   OPENFILENAME ofn;

   char szFile[MAX_PATH];  //定义一个长度为 MAX_PATH 的 char 数组

   ZeroMemory(&ofn,sizeof(ofn));  

   ofn.lStructSize = sizeof(ofn);

   ofn.lpstrFile = szFile;

   ofn.lpstrFile[0] = TEXT('\0');

   ofn.nMaxFile = sizeof(szFile); //szFile 是一个字符数组,那么 szFile 这个名字就代表这个字符数组的首地址

   ofn.lpstrFilter = TEXT("ALL\0*.*\0mp3\0*.mp3\0"); //文件类型过滤器

   ofn.nFilterIndex = 1;   //ofn.nFilterIndex = 2;默认选择第几个过滤器,是 1 开始的,不是 0.这也是试验出来的。

   ofn.lpstrFileTitle = NULL;

   ofn.nMaxFileTitle = 0;

   ofn.lpstrInitialDir = NULL;

   ofn.hwndOwner = hwnd;

   ofn.Flags = OFN_EXPLORER |OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;

   if (GetOpenFileName(&ofn)) //用户关闭对话框,GetOpenFileName 函数返回,返回值是 BOOL,等于TRUE 表示用户选择了文件,如果等于 FALSE 就表示用户选择了【取消】按钮

   {

    TCHAR shortPath[MAX_PATH];
    GetShortPathName(szFile, shortPath, sizeof(shortPath));

    TCHAR cmd[MAX_PATH+10];
    wsprintf(cmd, "play %s", shortPath);
    //MessageBox(hwnd, shortPath, shortPath, MB_OK);
    mciSendString(cmd,"", 0, NULL);
   }  
  }
        break;
        default:
  break;
    }
}

注意:

要正常运行程序需加头文件#pragma comment(lib, "winmm.lib")

3. 运行结果:

5.png

4. 可过滤文件

6.png

有点小问题就是:同时播放多个音乐,并不是选一首放一首

Mcisendstring 更多用法(暂停、继续、录音、播放进度控制)请参考

https://baike.baidu.com/item/mciSendString?fr=ala0_1

更多控件用法:

https://docs.microsoft.com/zh-cn/windows/win32/controls/individual-control-info?redirectedfrom=MSDN

音乐播放器成品:

http://pan-yz.chaoxing.com/share/info/908c992dbd2dfd59

免费评分

参与人数 2吾爱币 +1 热心值 +2 收起 理由
雷欧库珀 + 1 + 1 用心讨论,共获提升!
TXWD东方不败 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

TXWD东方不败 发表于 2020-11-21 11:14
很好,不错,我也学c语言
drophair 发表于 2020-11-9 19:24
祈愿啊 发表于 2020-11-9 20:57
茫茫狐 发表于 2020-11-9 21:23
不知为何,我用那下载的成品播放器,播放不了mp3文件,点了后就没了
Nests 发表于 2020-11-9 21:28
支持楼主!
lucifer52 发表于 2020-11-10 02:15
赞!代码量好大
whg118 发表于 2020-11-10 06:57
支持楼主,多放基础代码。
anandyuan 发表于 2020-11-10 07:55
支持楼主,小白非常感谢
雷欧库珀 发表于 2020-12-2 08:58
支持,建议大佬,每次在贴子最后附上之前的帖子链接
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 21:24

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表