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

📄 keti.cpp

📁 这是一个使用VC++编写的程序
💻 CPP
字号:
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#include "resource.h"

long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam);
BOOL InitWindowsClass(HINSTANCE hInstance);
BOOL InitWindows(HINSTANCE hInstance,int nCmdShow);
BOOL CALLBACK DlgProc(HWND hdlg,UINT iMessage,WPARAM wParam,LPARAM lParam);
char lpszleftx[]="",lpszlefty[]="",lpszrightx[]="",lpszrighty[]="";
char *stop;
UINT leftx=100,lefty=200,rightx=200,righty=300;
HINSTANCE hInst;
HWND hWndMain;
HWND hdlg;
bool cflag=0,jflag=0,dcflag=0,mcflag=0;


int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
				   LPSTR lpCmdLine,int nCmdShow)
{
	MSG message;
	if(!InitWindowsClass(hInstance)) return FALSE;
	if(!InitWindows(hInstance,nCmdShow)) return false;

	
	while(GetMessage(&message,0,0,0))
	{
		TranslateMessage(&message);
		DispatchMessage(&message);
	}
	return message.wParam;
}


long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam)
{
	
	HDC hdc;
	HPEN hp;
	PAINTSTRUCT ps;
	
   HMENU hm1,hm2;
	switch(iMessage)
	{
	case WM_COMMAND:
		switch(LOWORD (wParam))
		{
		case IDM_DRAW:
			DialogBox(hInst,"DIALOG",hWnd,(DLGPROC)DlgProc);
			if(cflag)  
			{
				hm1=GetMenu(hWnd);
			    hm2=CreateMenu();//创建空菜单
			    //添加菜单项
                AppendMenu(hm2,MF_ENABLED,IDM_CDRAW,"绘制圆形");
			    AppendMenu(hm2,MF_ENABLED,IDM_CMOVE,"移动圆形");
			    AppendMenu(hm2,MF_ENABLED,IDM_CBIGGER,"放大");
			    AppendMenu(hm2,MF_ENABLED,IDM_CSMALLER,"缩小");
			    AppendMenu(hm1,MF_POPUP,(UINT)hm2,"圆形");
				SetMenu(hWnd,hm1);
			    //DrawMenuBar(hWnd);//刷新菜单项
			    dcflag=0;
			
			}
				return 0;
		
			case IDM_CDRAW://绘制图形
				dcflag=1;
			    InvalidateRect(hWnd,NULL,1);
			    return 0;
            case IDM_CBIGGER://放大图形
			    leftx=leftx-10;
			    lefty=lefty-10;
		    	rightx=10+rightx;
		    	righty=righty+10;
		    	
                dcflag=1;
                InvalidateRect(hWnd,NULL,1);
		    	return 0;
		    case IDM_CSMALLER://缩小图形
		    	leftx=leftx+10;
      			lefty=lefty+10;
	    		rightx=rightx-10;
		    	righty=righty-10;
		    	
                dcflag=1;
                InvalidateRect(hWnd,NULL,1);
	    		return 0;
			case IDM_CMOVE:
				mcflag=1;
				return 0;
			case WM_KEYDOWN:
				if(mcflag)//移动图形
					{
						switch(wParam)
						{
						case VK_LEFT:	//左箭头按下
							leftx=leftx-10;
				            rightx=rightx-10;
				            dcflag=1;
				            InvalidateRect(hWnd,NULL,1);
				            return 0;				
			            case VK_RIGHT:	//右箭头按下  	
				            leftx=leftx+10;
				            rightx=rightx+10;
				            dcflag=1;
			         	    InvalidateRect(hWnd,NULL,1);
			        	    return 0;
		  	            case VK_UP:	//上箭头按下		
			
			        	   lefty=lefty-10;
				           righty=righty-10;
			        	   dcflag=1;
			        	   InvalidateRect(hWnd,NULL,1);
			          	   return 0;
		            	case VK_DOWN:	//下箭头按下		
			
				          lefty=lefty+10;
				          righty=righty+10;
				          dcflag=1;
				         InvalidateRect(hWnd,NULL,1);
			     	   return 0;
				}
			}
			
		}
		case WM_PAINT:
			hdc=BeginPaint(hWnd,&ps);
		    if (cflag==1 && dcflag)
			{
				
				
				hp=(HPEN)GetStockObject(BLACK_PEN);
		        SelectObject(hdc,hp);
		        Arc(hdc,leftx,lefty,rightx,righty,leftx,lefty,leftx,lefty);
			}
			EndPaint(hWnd,&ps);
			return 0;
	
	
		
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	default:
			return DefWindowProc(hWnd,iMessage,wParam,lParam);
	}
	return 0;
}
BOOL CALLBACK DlgProc(HWND hdlg,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
	switch(iMessage)
	{
	case WM_INITDIALOG:
		return true;
	case WM_COMMAND:
		switch(LOWORD(wParam))
		{
		case IDOK:
			if(cflag)
			SendMessage(hWndMain,WM_COMMAND,IDM_CDRAW,0L);			
			EndDialog(hdlg,0);
			return 1;
		case IDCANCEL:
			EndDialog(hdlg,TRUE);
			return true;
		case IDCCYCLE:
			cflag=1;
			
			return 0;
		case IDC_LEFTX:
			GetDlgItemText(hdlg,IDC_LEFTX,lpszleftx,255);
			leftx=strtol(lpszleftx,&stop,10);//获得左上角x的坐标
			return 0;
		case IDC_LEFTY:
			GetDlgItemText(hdlg,IDC_LEFTY,lpszlefty,255);
			lefty=strtol(lpszlefty,&stop,10);//获得左上角y的坐标
			return 0;
		case IDC_RIGHTX:
			GetDlgItemText(hdlg,IDC_RIGHTX,lpszrightx,255);
			rightx=strtol(lpszrightx,&stop,10);//获得右下角x的坐标
			return 0;
		case IDC_RIGHTY:
			GetDlgItemText(hdlg,IDC_RIGHTY,lpszrighty,255);
			righty=strtol(lpszrighty,&stop,10);//获得右下角y的坐标
			return 0;
		}
		break;
	case WM_CLOSE:
		DestroyWindow(hdlg);
		return true;
	}
	return false;
}
BOOL InitWindows(HINSTANCE hInstance,int nCmdShow)
{
	HWND hWnd;
	
	hWnd=CreateWindow("课程设计","课程设计",
		WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,0,CW_USEDEFAULT,0,
		NULL,
		NULL,                  //无菜单
		hInstance,
		NULL);
	if(!hWnd) return false;
	hWndMain=hWnd;
	ShowWindow(hWnd,nCmdShow);
	UpdateWindow(hWnd);
	return true;
}

BOOL InitWindowsClass(HINSTANCE hInstance)
{
	WNDCLASS wndClass;
	wndClass.cbClsExtra=0;
	wndClass.cbWndExtra=0;
	wndClass.hbrBackground=(HBRUSH)(GetStockObject(WHITE_BRUSH));
	wndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
	wndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
	wndClass.hInstance=hInstance;
	wndClass.lpfnWndProc=WndProc;
	wndClass.lpszClassName="课程设计";
	wndClass.lpszMenuName="MENU1";   //"MENU1"为初始菜单
	wndClass.style=0;
	return(RegisterClass(&wndClass));
}
	

⌨️ 快捷键说明

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