?? keti.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 + -