实验报告 实验一
case VK_DOWN: //按DOWN键,向下移动. rect1.top +=10; rect1.bottom +=10;
if(bRect == TRUE || bCircle == TRUE) {
InvalidateRect(hWnd,NULL,TRUE); //发出重绘信息. {
if(rect1.bottom>=ClientRect.bottom) {
MessageBox(hWnd,\已经到最低点\ }
}
}
break;
case VK_LEFT: //按LEFT键,向左移动. rect1.left -=10; rect1.right -=10;
if(bRect == TRUE || bCircle == TRUE)
{ }
InvalidateRect(hWnd,NULL,TRUE); //发出重绘信息. {
if(rect1.left<=0) {
MessageBox(hWnd,\已经到最左点\ } }
动.
break;
case VK_RIGHT:
//按RIGHT键,向右移
rect1.left +=10; rect1.right +=10;
if(bRect == TRUE || bCircle == TRUE) {
InvalidateRect(hWnd,NULL,TRUE); //发出重绘信息. {
if(rect1.right>=ClientRect.right) {
MessageBox(hWnd,\已经到最右点\ }
} }
实验报告 实验一
break;
} break;
case WM_LBUTTONUP:
bRect = FALSE; bCircle = FALSE; flag=1; break;
//处理鼠标移动信息.
//当松开左键时.绘图标志为false.
// //
case WM_MOUSEMOVE:
if(flag==0 )
{
rect1.right = x; rect1.bottom = y;
//图形的右下角坐标为当前鼠标位置.
InvalidateRect(hWnd,NULL,TRUE); //发出重绘信息. }
break;
case WM_PAINT:
hDC = BeginPaint(hWnd,&ps); if(bCircle == TRUE )
{ //绘制圆形.
hB1=CreateSolidBrush(RGB(0,255,0));//创建绿色画刷 SelectObject(hDC,hB1);
Ellipse(hDC,rect1.left,rect1.top,rect1.right,rect1.bottom); }
if(bRect == TRUE)
{ //绘制矩形
hB2=CreateSolidBrush(RGB(0,0,255));//创建蓝色画刷 SelectObject(hDC,hB2);
Rectangle(hDC,rect1.left,rect1.top,rect1.right,rect1.bottom); }
EndPaint(hWnd,&ps); break;
case WM_DESTROY: //处理退出窗口信息. PostQuitMessage(0); return 0; default:
return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}
return 0; }
实验报告 实验一
BOOL InitWindows(HINSTANCE hInstance,int nCmdShow) //初始化窗口 {
HWND hWnd;
hWnd=CreateWindow(\
//生成窗口
\学号:Xb09620113;姓名:林哈特\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(hInstance,MAKEINTRESOURCE(IDC_CURSOR1)); //光标为为箭头.
WndClass.hIcon=LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICON1));
//采用缺省图标.
WndClass.hInstance=hInstance;
//当前实例.
WndClass.lpfnWndProc=WndProc; //消息处理函数. WndClass.lpszClassName=\ //窗口类名称. WndClass.lpszMenuName=MAKEINTRESOURCE(IDR_MENU1);
//缺省窗口风格.
//
无菜单.
WndClass.style=0;
实验报告 实验一
return RegisterClass(&WndClass); //返回窗口注册值. }
四、运行结果及分析
五、实验心得
本次实验学习到了如何创建菜单,使得程序应用变得更加方便了。