⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 朱瑞菜单操作.cpp

📁 能够实现菜单的基本操作
💻 CPP
📖 第 1 页 / 共 3 页
字号:
#include "windows.h"
#include"math.h"
#include "resource.h"
#include"vfw.h"
#include "mmsystem.h" //------------------------------
#pragma comment (lib,"WINMM.LIB") //------------------加载播放背景音乐的库文件;

//#include"samaction.h"



HMENU hmenu,haddmenu;

int flag=0;
int xian=0;
int xian2=0;
int ireturn;
int loop=1;
//long m,n;
double 	yuan2_x=0,    yuan2_y=0;
double yuan1_x=0,yuan1_y=0;
long double xielv=0;    //定义沿对角线运动时对角线的斜率;  


//POINT p;
COLORREF	Brushcolor;
COLORREF    Bkcolor=RGB(10,63,57);    //背景色变量初始化

SYSTEMTIME time;  //定义时间变量;



//samaction action;



CHOOSECOLOR	cc;
COLORREF		crCustColors[16];

typedef struct
{
	POINT		begin;
	POINT		end;
	int			width;
	COLORREF	color;
	int			penstyle;
	int			Kind;
	
}style;
style Bi;




LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);


HDC hdcmem;				//内存设备环境句柄
HBITMAP hBm;			//位图句柄
BITMAP bm;				//BITBMP结构

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR lpszCmdLine,int nCmdShow)
{
	//void action(void);
	HWND hwnd;
	MSG Msg;
	WNDCLASS wndclass;
	//WNDCLASSEX wndclass;
	static char lpszClassName[]="窗口";
	char lpszTitle[]="sam作业多合一";

	wndclass.style=CS_DBLCLKS ;
	//wndclass.cbSize=sizeof(wndclass);
	wndclass.lpfnWndProc=WndProc;
	wndclass.cbClsExtra=0;
	wndclass.cbWndExtra=0;
	wndclass.hInstance=hInstance;
	//wndclass.hIcon=LoadIcon(hInstance,IDI_APPLICATION);		
	
	wndclass.hIcon=LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICON1));
	//wndclass.hIcon=LoadIcon(NULL,MAKEINTRESOURCE(IDI_ICON2));
	
	wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);
	//wndclass.hCursor=LoadCursor(NULL,IDC_IBEAM);				//加载相应的光标
	//wndclass.hIconSm=LoadIcon(NULL,IDI_APPLICATION);
	//wndclass.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
	
	wndclass.hbrBackground=(HBRUSH)CreateSolidBrush(RGB(0,0,0));
	wndclass.lpszMenuName=MAKEINTRESOURCE(IDM_MENU);
	wndclass.lpszClassName=lpszClassName;

	if(!RegisterClass(&wndclass))
	{
		MessageBeep(0);
		return FALSE;
	}

    hwnd=CreateWindow(lpszClassName,lpszTitle,WS_OVERLAPPEDWINDOW|WS_HSCROLL|WS_VSCROLL
		,CW_USEDEFAULT,CW_USEDEFAULT,1104,640,NULL,NULL,hInstance,NULL);
	
	
	//hBm=LoadBitmap(hInstance,"IDB_BITMAP1");		//IDB_BITBMP1
	hBm=LoadBitmap(hInstance,MAKEINTRESOURCE(IDB_SAM));
	GetObject(hBm,sizeof(BITMAP),(LPVOID)&bm);
	
	
	ShowWindow(hwnd,nCmdShow);
	UpdateWindow(hwnd);
	while(GetMessage(&Msg,NULL,0,0))
	{
		TranslateMessage(&Msg);
		DispatchMessage(&Msg);
	}
	return Msg.wParam;



}


//处理消息
LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
	//定义相关的绘图设备
	HDC hDC;
	HBRUSH hBrush;
	HPEN hPen;
	PAINTSTRUCT PtStr;		//定义指向包含绘图信息的结构体变量

	cc.lStructSize			= sizeof(CHOOSECOLOR);
	cc.hwndOwner			= hWnd;
	cc.hInstance			= NULL;
	cc.rgbResult			= RGB(0,0,0);
	cc.lpCustColors			= crCustColors;
	cc.Flags				= CC_RGBINIT |CC_FULLOPEN;
	cc.lCustData			= 0;
	cc.lpfnHook				= NULL;
	cc.lpTemplateName		= NULL;


	


	switch(message)
	{
	
	case WM_PAINT:
		hDC=BeginPaint(hWnd,&PtStr);
		SelectObject(hdcmem,hBm);
		BitBlt(hDC,200,50,10000,10000,hdcmem,0,0,SRCCOPY);
		EndPaint(hWnd,&PtStr);
		return 0;
		break;
		
	case WM_CREATE:
		MessageBox(hWnd,"欢迎使用 BY SAM @2008 10 17","欢迎",MB_OK);
		hDC=GetDC(hWnd);
		hdcmem=CreateCompatibleDC(hDC);
		ReleaseDC(hWnd,hDC);
		sndPlaySound("开场.wav",SND_ASYNC);
		break;
		return 0;

		//-------------------------------------------case command--------------------------------------------------------------//
	case WM_COMMAND:
		switch(LOWORD(wParam))
		{
		case IDM_XINJIAN:sndPlaySound("sam.wav",SND_ASYNC|SND_LOOP);
		case IDM_QINGKONG:
			ireturn=MessageBox(hWnd,"请保存好您的数据,确定清空么?","提示",MB_YESNO | MB_ICONQUESTION | MB_DEFBUTTON2);
			if(ireturn==IDYES)
			{
				RECT rect;
				GetClientRect(hWnd,&rect);
				hDC=GetDC(hWnd);
				hPen=CreatePen(PS_SOLID,2,RGB(10,63,57));
				hBrush=CreateSolidBrush(RGB(10,63,57));
				SelectObject(hDC,hBrush);
				SelectObject(hDC,hPen);
				Rectangle(hDC,0,0,rect.right,rect.bottom);
				ReleaseDC(hWnd,hDC);
				break;
			}
			else if(ireturn==IDNO)
				return 0;
			return 0;

		case IDM_DAKAI:
			MessageBox(hWnd,"暂不支持打开文件","提示",MB_OK);
			break;

		case IDM_BAOCUN:
			MessageBox(hWnd,"文件太大了,硬盘放不下!","哈哈",MB_OK);
			break;
			return 0;

		case IDM_TUICHU:
			ireturn=MessageBox(hWnd,"真的要退出么?","提示",MB_YESNO | MB_ICONQUESTION | MB_DEFBUTTON2);
			if(ireturn==IDYES)
			{
				PostQuitMessage (0);;
			}
			else if(ireturn==IDNO)
				return 0;
			
			return 0;
			
		case IDM_YIBEI:
			Bi.width=1;
			xian=1;
			flag=0;
			break;
			return 0;

		case IDM_WUBEI:
			Bi.width=5;
			xian=1;
			flag=0;
			break;
			return 0;

		case IDM_SHIBEI:
			Bi.width=10;
			xian=1;
			flag=0;
			break;
			return 0;
			
		case IDM_SHIXIAN:
			Bi.penstyle=PS_SOLID;
			xian=1;
			break;
			return 0;

		case IDM_XUXIAN:
			Bi.penstyle=PS_DASH;
			xian=1;
			break;
			return 0;

		case IDM_ZHIXIAN:
		//	MessageBox(hWnd,"开始画图","信息",MB_OK);
			flag=1;
			break;
		case IDM_SHIXINJUXING:
			flag=2;
			break;
			return 0;

		case IDM_SHIXINTUOYUAN:
			flag=3;
			break;
			return 0;

	/*	case IDM_BINGXING:
			flag=4;
			break;
			return 0;
	*/

		case IDM_HUABIYANSE:
			ChooseColor(&cc);
			Bi.color=cc.rgbResult;
			break;
			return 0;

		case IDM_HUASHUAYANSE:
			ChooseColor(&cc);
			Brushcolor=cc.rgbResult;
			break;
			return 0;

		case IDM_BEIJINGSE:
			ireturn=MessageBox(hWnd,"更改背景色会清除所有数据,更改么?","提示",MB_YESNO);
			if(ireturn==IDYES)
			{
				ChooseColor(&cc);
				Bkcolor=cc.rgbResult;
				RECT rect;
				GetClientRect(hWnd,&rect);
				hDC=GetDC(hWnd);
				hPen=CreatePen(PS_SOLID,2,Bkcolor);
				hBrush=CreateSolidBrush(Bkcolor);	//设置画刷
				SelectObject(hDC,hPen);
				SelectObject(hDC,hBrush);
				Rectangle(hDC,0,0,rect.right,rect.bottom);
				ReleaseDC(hWnd,hDC);
				break;
			}else
				break;
			return 0;


		case IDM_BANGZHU:
			//MessageBox(hWnd,"莫有帮助,自己慢慢摸索吧    O(∩_∩)O    哈哈~","嘿嘿",MB_OK);
			ShellExecute(NULL,"open","说明.txt",NULL,NULL,SW_SHOWNORMAL);
			break;
			return 0;

		case IDM_GUANYU:
			MessageBox(hWnd,"BY SAM @ 2008 10 16","关于",MB_OK);
			ShellExecute(NULL,"open","http://user.qzone.qq.com/381973988",NULL,NULL,SW_SHOWNORMAL);
			break;
			return 0;

		case IDM_XIANGPICA:
			flag=4;
			break;
			return 0;

		case IDM_PENGPENGQIU:
			flag=5;
			MessageBox(hWnd,"背景色和球的填充色均可在颜色菜单中设置,设置好后,单击用户区开始","提示",MB_OK);
			break;
			return 0;

		case IDM_45:
			flag=6;
			MessageBox(hWnd,"背景色和球的填充色均可在颜色菜单中设置,设置好后,单击用户区开始","提示",MB_OK);
			break;
			return 0;

		case IDM_DUIJIAO:
			flag=7;
			MessageBox(hWnd,"背景色和球的填充色均可在颜色菜单中设置,设置好后,单击用户区开始","提示",MB_OK);
			break;
			return 0;

		case IDM_KONGXINJUXING:
			flag=8;
			break;
			return 0;

		case IDM_KONGXINTUOYUAN:
			flag=9;
			break;
			return 0;

		case IDM_JISUANQI:
			ShellExecute(NULL, "open", "calc.exe", NULL, NULL, SW_SHOWNORMAL);
			break;
			return 0;
			//-----------------------------------------------最长路径-----------------------------------------------------------------//
		case IDM_ZUICHANGLUJING:
			{
				flag=10;
				int i=0,j=0;
				hDC=GetDC(hWnd);
				hPen=CreatePen(PS_SOLID,Bi.width,RGB(0,0,0));
				hBrush=CreateSolidBrush(RGB(0,0,255));//设置画刷
				SelectObject(hDC,hPen);
				SelectObject(hDC,hBrush);
				RECT rect;
				GetClientRect(hWnd,&rect);
				int x_unit=rect.right/16;
				int y_unit=rect.bottom/16;
				for(i=1;i<=16;i++)
					for(j=1;j<=16;j++)
						if((i+j)%2==0)
						{
							hPen=CreatePen(PS_SOLID,2,RGB(0,255,0));
							SelectObject(hDC,hPen);
							hBrush=CreateSolidBrush(RGB(0,0,0));
							SelectObject(hDC,hBrush);
							Rectangle(hDC,(i-1)*x_unit,(j-1)*y_unit,i*x_unit,j*y_unit);
						}
						else
						{
							hPen=CreatePen(PS_SOLID,2,RGB(0,255,0));
							SelectObject(hDC,hPen);
							hBrush=CreateSolidBrush(RGB(255,0,0));
							SelectObject(hDC,hBrush);
						Rectangle(hDC,(i-1)*x_unit,(j-1)*y_unit,i*x_unit,j*y_unit);
						}			

			}

				break;
				return 0;

            //-------------------------------------------报时器----------------------------------------------------------------------//
		case IDM_BAOSHIQI:
			{
			int zhengdian=0;
			GetLocalTime(&time);
			sndPlaySound("zhong.wav",SND_SYNC);
			sndPlaySound("TIMENOW.wav",SND_SYNC);
			//Sleep(1000);
			if(time.wMinute==0)
			{
				zhengdian=1;
			}
			if(time.wHour<7)
			{
				sndPlaySound("AM0.wav",SND_SYNC);
			}
			else if((time.wHour<12)&&(time.wHour>=7))
			{
				sndPlaySound("AM1.wav",SND_SYNC);
			}
			else if((time.wHour<19)&&(time.wHour>=12))
			{
				sndPlaySound("PM.wav",SND_SYNC);
			}
			else if((time.wHour<=23)&&(time.wHour>=19))
			{
				sndPlaySound("PM.wav",SND_SYNC);
			}
			
			switch(time.wHour)
			{
			case 0:
				sndPlaySound("T00.wav",SND_SYNC);
				break;
			case 13:
			case 1:
				sndPlaySound("T01.wav",SND_SYNC);
				break;
			case 14:
			case 2:
				sndPlaySound("T2.wav",SND_SYNC);
				break;
				case 15:
				case 3:
					sndPlaySound("T03.wav",SND_SYNC);
					break;
				case 16:
				case 4:
					sndPlaySound("T04.wav",SND_SYNC);
					break;
				case 17:
				case 5:
					sndPlaySound("T05.wav",SND_SYNC);
					break;
				case 18:
				case 6:
					sndPlaySound("T06.wav",SND_SYNC);
					break;
				case 19:
				case 7:
					sndPlaySound("T07.wav",SND_SYNC);
					break;
				case 20:
				case 8:
					sndPlaySound("T08.wav",SND_SYNC);
					break;
				case 21:
				case 9:
					sndPlaySound("T09.wav",SND_SYNC);
					break;
				case 10:
				case 22:
					sndPlaySound("T10.wav",SND_SYNC);
					break;
				case 23:
				case 11:
					sndPlaySound("T11.wav",SND_SYNC);
					break;
				case 12:
					sndPlaySound("T12.wav",SND_SYNC);
					break;

				}
				sndPlaySound("POINT.wav",SND_SYNC);



				if(zhengdian!=1)
				{
					switch(time.wMinute/10)
					{
					case 0:
						sndPlaySound("T00.wav",SND_SYNC);
						break;
					case 1:
						sndPlaySound("T10.wav",SND_SYNC);
						break;
					case 2:
						sndPlaySound("T20.wav",SND_SYNC);
						break;
					case 3:
						sndPlaySound("T30.wav",SND_SYNC);
						break;
					case 4:
						sndPlaySound("T40.wav",SND_SYNC);
						break;
					case 5:
						sndPlaySound("T50.wav",SND_SYNC);
						break;
					}

					switch(time.wMinute%10)
					{
					case 1:
						sndPlaySound("T01.wav",SND_SYNC);
						break;
					case 2:
						sndPlaySound("T02.wav",SND_SYNC);
						break;
					case 3:
						sndPlaySound("T03.wav",SND_SYNC);
						break;
					case 4:
						sndPlaySound("T04.wav",SND_SYNC);
						break;
					case 5:
						sndPlaySound("T05.wav",SND_SYNC);
						break;
					case 6:
						sndPlaySound("T06.wav",SND_SYNC);
						break;
					case 7:
						sndPlaySound("T07.wav",SND_SYNC);
						break;
					case 8:
						sndPlaySound("T08.wav",SND_SYNC);
						break;
					case 9:
						sndPlaySound("T09.wav",SND_SYNC);
						break;
					}
					sndPlaySound("MIN.wav",SND_SYNC);
				
				}
					sndPlaySound("sam.wav",SND_ASYNC|SND_LOOP);
			break;
			return 0;
			}

        
		




			
			
		/*case IDM_YUNDONGQIUTUICHU:
			loop=0;
			break;
			return 0;
     */


		
		}
		return (0);
//---------------------------------------------case LBUTTONDOWN-------------------------------------------------------------------//		
		case WM_LBUTTONDOWN:
			GetCursorPos(&Bi.begin);
			ScreenToClient(hWnd,&Bi.begin);
			xian2=1;
				//SetPixel(hDC,Bi.end.x,Bi.end.y,Bi.color);		
	//			MoveToEx(hDC,p.x,p.y,NULL);
	///			while(wParam!=WM_LBUTTONUP)
	//			{
	//				GetCursorPos(&p);
	//				ScreenToClient(hWnd,&p);
	//				LineTo(hDC,p.x,p.y);
	//			}
	//		}
		break;
		return (0);
//--------------------------------------------------------case LBUTTONUP-----------------------------------------------------------------//
    	case WM_LBUTTONUP:
			xian2=0;
			switch(flag)
			{
				//---------------------直线------------------------------------------------------------------------//
			case 1:
				hDC=GetDC(hWnd);
				GetCursorPos(&Bi.end);		
				hPen=CreatePen(Bi.penstyle,Bi.width,Bi.color);
				hBrush=CreateSolidBrush(Bi.color);	//设置画刷
				SelectObject(hDC,hPen);
				SelectObject(hDC,hBrush);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -