自己动手开发音乐播放器(二)附加界面的搭建
来源:互联网 发布:代申请淘宝大v 编辑:程序博客网 时间:2024/05/16 15:53
昨天搭建好了,主界面,今天依然要搭建界面,我想首先将基本的界面搭建好,然后再一步一步实现音乐播放器的功能
昨天搭建好的主界面
今天需要搭建两个界面,一个是退出界面,一个是关于界面,对于这两个界面,我想大家不会陌生,如退出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;//父窗口的IDnid.uID = IDD_MAIN;//起作用的成员: hIcon uCallbackMessage szTipnid.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;
程序运行效果
- 自己动手开发音乐播放器(二)附加界面的搭建
- 自己动手开发音乐播放器(一)主界面的搭建
- 自己动手开发音乐播放器《八》迷你界面的实现
- 自己动手开发音乐播放器《十》界面美化
- 自己动手开发音乐播放器《五》播放功能的实现
- 自己动手开发音乐播放器《六》播放方式的实现
- 自己动手开发音乐播放器《九》设定窗口的透明度
- 自己动手开发音乐播放器《十一》下载音乐播放器
- 自己动手开发音乐播放器(三)最小化托盘
- 自己动手开发音乐播放器(四)文件操作
- Android开发界面设计---音乐播放器界面
- Android开发本地及网络Mp3音乐播放器(二)SplashActivity(欢迎界面)
- vuejs开发音乐播放器(二):单歌手歌单列表界面
- 音乐播放器-引导界面的实现
- 写的一个音乐播放器界面
- 音乐播放器的开发
- 自己动手开发音乐播放器《七》使用滑块实现音量和播放进度
- 自己动手做Android音乐播放器
- apache中伪静态配置和使用
- Jquery和Struts2使用Ajax时部分属性以json返回的处理
- IA-64 对结构体中的字段进行原子操作注意问题
- Quartus Internal Error subsystem /..../...../amerge amerge_merger_op.cpp line:911
- “竞价排名”模式在生活搜索中的蝶变
- 自己动手开发音乐播放器(二)附加界面的搭建
- 一道阿里多线程面试题的分析与应对
- git查看某个文件的修改历史
- XMPP如何连接服务器
- “网如人生”揭秘网站权重计算方法
- Quartus 建立SOPC项目下载到DE2中回送Hello
- Log Annonation例子
- Android中通过xml资源文件定义数组
- “网络”与“营销”的意义