视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
自己动手开发音乐播放器(二)附加界面的搭建
2025-10-05 17:06:38 责编:小OO
文档
自己动手开发音乐播放器(二)附加界面的搭建 

昨天搭建好了,主界面,今天依然要搭建界面,我想首先将基本的界面搭建好,然后再一步一步实现音乐播放器的功能昨天搭建好的主界面今天需要搭建两个界面,一个是退出界面,一个是关于界面,对于这两个界面,我想大家不会陌生,如退出QQ时,就会出现一个退出界面,提示是退出还是最小化托盘,关于界面是显示音乐播放器的信息,言归正传首先打开昨天搭建好的主界面选择Dialog文件夹,并且单击鼠标右键选择插入Dialog插入Dialog后的界面修改对话框的名字和ID将鼠标移到对话框上并且单击鼠标右键选择属性将ID改为IDD_ABOUT 标题改为 关于修改后的效果搭建好后就开始写代码选择文件-----新建-----C++ Source file 输入 AboutDlg 单击确定在AboutDlg.cpp中添加下面代码#include "stdafx.h"#include <windows.h>#include <windowsx.h>#include "resource.h"#include "MainDlg.h"#include "AboutDlg.h"BOOL WINAPI About_Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam){    switch(uMsg)    {        HANDLE_MSG(hWnd, WM_INITDIALOG, About_Main_OnInitDialog);        HANDLE_MSG(hWnd, WM_COMMAND, About_Main_OnCommand);        HANDLE_MSG(hWnd,WM_CLOSE, About_Main_OnClose);    }    return FALSE;}BOOL About_Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam){    return TRUE;}void About_Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify){    switch(id)    {        case IDOK:        {            EndDialog(hwnd, 0);        }        break;        default:        break;    }}void About_Main_OnClose(HWND hwnd){    EndDialog(hwnd, 0);}再用上面的方法建立一个头文件文件名为AboutDlg,并在文件中添加下面的代码#ifndef _About_MAIN_H#define _About_MAIN_H#include <windows.h>BOOL WINAPI About_Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);BOOL About_Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam);void About_Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify);void About_Main_OnClose(HWND hwnd);#endif并且在MainDlg.CPP文件中的void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)函数中添加下面代    //关于        case ID_MENUITEM40016:        {            /*得到窗口的实例句柄*/            HINSTANCE hInstance = (HINSTANCE)GetWindowLong(hwnd, GWL_HINSTANCE);           /*弹出对话框*/           DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_ABOUT), NULL,About_Main_Proc, NULL);        }        break;修改关于对话框,将对话框修改成下图所示的界面测试代码,执行程序退出界面,退出界面和关于界面的原理一样,也是添加对话框新建两个文件一个是ExitDlg.CPP 还有一个是ExitDlg.h在ExitDlg.cpp中添加下面代码#include "stdafx.h"#include <windows.h>#include <windowsx.h>#include "shellapi.h"//取用托盘头文件#include "resource.h"#include "MainDlg.h"#include "ExitDlg.h"//处理托盘消息void ToTray(HWND hwnd,int flag){    //得到父窗口的句柄    HWND hwnd1 = FindWindow(NULL,TEXT("音乐播放器"));    //传递托盘结构    NOTIFYICONDATA nid;    //结构体清零    ZeroMemory(&nid, sizeof(NOTIFYICONDATA));    //托盘结构的大小    nid.cbSize = (DWORD)sizeof(NOTIFYICONDATA);    //父窗口的句柄    nid.hWnd = hwnd1;    //父窗口的ID    nid.uID = IDD_MAIN;    //起作用的成员: hIcon uCallbackMessage szTip    nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;    //在托盘中显示音乐播放器的名字    wsprintf(nid.szTip ,"%s",TEXT("音乐播放器"));    //程序自定义的消息标示符    nid.uCallbackMessage = WM_SHOWTASK;    /*增加、修改或删除图标句柄*/    nid.hIcon = LoadIcon( (HINSTANCE)GetWindowLong(hwnd, GWL_HINSTANCE), MAKEINTRESOURCE(IDI_ICON1));    switch(flag)    {        //音乐播放器最小化托盘         case 1:        {            //关闭退出对话框            EndDialog(hwnd,0);            //隐藏窗口            ShowWindow(hwnd1,SW_HIDE);        }        break;        //还原音乐播放器         case 2:        {            //显示窗口            ShowWindow(hwnd1,SW_SHOW);        }        break;        //退出音乐播放器         case 3:        {            Main_OnClose(hwnd1);        }         break;         //在托盘上显示图标         case 4:        {            Shell_NotifyIcon(NIM_ADD,&nid);        }        break;        //删除托盘图标         case 5:        {            Shell_NotifyIcon(NIM_DELETE,&nid);        }        break;        default:        break;    }}//关闭音乐播放器void Exit_Main_OnClose1(HWND hwnd){    //删除托盘图标    ToTray(hwnd,5);    //关闭音乐播放器    exit(0);}BOOL WINAPI Exit_Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam){    switch(uMsg)    {        HANDLE_MSG(hWnd, WM_INITDIALOG, Exit_Main_OnInitDialog);        HANDLE_MSG(hWnd, WM_COMMAND, Exit_Main_OnCommand);        HANDLE_MSG(hWnd,WM_CLOSE, Exit_Main_OnClose);    }    return FALSE;}BOOL Exit_Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam){    return TRUE;}void Exit_Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify){    switch(id)    {        //最小化托盘         case IDYES:        {            ToTray(hwnd,1);        }        break;        //关闭音乐播放器         case IDNO:        {            Exit_Main_OnClose1(hwnd);        }        break;        default:        break;    }}void Exit_Main_OnClose(HWND hwnd){    EndDialog(hwnd, 0);}在ExitDlg.h中添加下面的代码#ifndef _Exit_MAIN_H#define _Exit_MAIN_H#include <windows.h>BOOL WINAPI Exit_Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);BOOL Exit_Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam);void Exit_Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify);void Exit_Main_OnClose(HWND hwnd);//处理托盘消息void ToTray(HWND hwnd,int flag);#define WM_SHOWTASK (WM_USER + 100)/*自定义消息,用于托盘图标响应鼠标消息*///关闭音乐播放器void Exit_Main_OnClose1(HWND hwnd);#endif在MainDlg.CPP中的void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)函数中    //退出音乐播放器        case ID_MENUITEMEXIT:        {            Exit_Main_OnClose1(hwnd);        }        break;程序运行效果下载本文

显示全文
专题