在窗口中显示一个球,该球以与水平成45度夹角作直线运动,当遇到边界时,反弹回来,仍与水平成45度角继续运动。

#include<windows.h>
#include<stdlib.h>
#include<string.h>LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);//主函数
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{HWND hwnd;MSG Msg;WNDCLASS wndclass;char lpszClassName[]="boll"; char lpszTitle[]="123";wndclass.style=0;wndclass.lpfnWndProc=WndProc;//定义窗口处理函数wndclass.cbClsExtra=0;//窗口类无扩展wndclass.cbWndExtra=0;//窗口实例无扩展wndclass.hInstance=hInstance;//当前实例句柄wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);//窗口的最小化图标为缺省图标wndclass.hCursor=LoadCursor(NULL,IDC_CROSS);wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);//窗口背景为白色wndclass.lpszMenuName=NULL;  //窗口中无菜单wndclass.lpszClassName=lpszClassName;if( !RegisterClass( &wndclass)){  MessageBeep(0);return FALSE;    }hwnd = CreateWindow(  lpszClassName,  lpszTitle,WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,  NULL);ShowWindow(hwnd,nCmdShow);UpdateWindow(hwnd);while(GetMessage(&Msg,NULL,0,0)){    TranslateMessage(&Msg); DispatchMessage(&Msg);}return Msg.wParam;
}LRESULT CALLBACK WndProc
(HWND hwnd,UINT iMessage,UINT wParam,LONG IParam)
{HDC hDC;HBRUSH hBrush;HPEN hPen;PAINTSTRUCT PtStr;RECT rect;static int x=100,y=100,xd=2,yd=2;switch(iMessage){case WM_PAINT:hDC=BeginPaint(hwnd,&PtStr);hPen=CreatePen(PS_SOLID,2,RGB(255,0,0));SelectObject(hDC,hPen);hBrush=CreateSolidBrush(RGB(255,255,0));SelectObject(hDC,hBrush);GetClientRect(hwnd,&rect);Ellipse(hDC,x-10,y-10,x+10,y+10);x+=xd;y+=yd;if(x-10<0||x+10>rect.right)xd=-xd;if(y-10<0||y+10>rect.bottom)yd=-yd;DeleteObject(hPen);DeleteObject(hBrush);EndPaint(hwnd,&PtStr);Sleep(10);InvalidateRect(hwnd,NULL,1);return 0;case WM_DESTROY:PostQuitMessage(0);return 0;default:return DefWindowProc(hwnd,iMessage,wParam,IParam);}return 0;
}

可视化:在窗口中显示一个球,该球以与水平成45度夹角作直线运动,当遇到边界时,反弹回来,仍与水平成45度角继续运动。相关推荐

  1. 27、HTML框架(同一个浏览器窗口中显示不止一个页面)

    通过使用框架,你可以在同一个浏览器窗口中显示不止一个页面. <iframe src="https://www.17173.com/" width="500" ...

  2. windows卸载qt_如何在Qt中显示一个窗口并在关闭后立即将其删除?

    作为一个非常简单的例子,我想在按下按钮时在Qt中显示一个对话框.通常的模式(在我正在申请的应用程序中)似乎如下: class MainWindow { ... private slots: butto ...

  3. python作业.创建两个文本框,一个按钮。第 1 个文本框绑定任意键事件,敲击键盘任意可显示字符,在交互窗口中显示该字符;第 2 个文本框绑定<a>键事件,敲击键盘 a 字符,在交互窗口中显示 10

    """ 创建两个文本框,一个按钮. 第 1 个文本框绑定任意键事件,敲击键盘任意可显示字符,在交互窗口中显示该字符: 第 2 个文本框绑定<a>键事件,敲击键 ...

  4. 创建两个文本框,一个按钮。第 1 个文本框绑定任意键事件,敲击键盘任意可显示字符,在交互窗口中显示该字符;

    创建两个文本框,一个按钮.第 1 个文本框绑定任意键事件,敲击键盘任意可显示字符,在交互窗口中显示该字符:第 2 个文本框绑定键事件,敲击键盘 a 字符,在交互窗口中显示 10 个'a'字符:按钮绑定 ...

  5. 区域显示触发_Unity3D 在Hierarchy窗口中显示物体所属Layer

    我们想要查看场景中物体的Layer时,需要在Hierarchy窗口中点击GameObject,然后才能在Inspector中显示Layer等相关属性, 当场景物体多的时候,这个操作还是比较麻烦的.那么 ...

  6. 【opencv】3.在一个opencv窗口中显示多个视频界面、画箭头、画掉头箭头

    1.在一个opencv窗口中显示不同视频界面 /** * @brief 在一个opencv窗口win_name中显示不同视频界面 * @param img_1 和 img_2 是分别是取自不同视频中的 ...

  7. matlab 显示表格化,[转载]matlab窗口中显示excel表格的问题

    刚刚在恒润论坛看到的,感觉还不错,跟踪中-- http://www.hirain.com/forum/dispbbs.asp?boardID=1&ID=301 % -------------- ...

  8. 半透明窗口中显示标准控件(控件与文字不透明)的实现方案(附源码)

    和大家分享一下在半透明窗口中显示标准控件的实现方案.通过层叠窗口可以简单实现半透明与不规则形状窗口的效果,但在其上显示标准控件(控件与文字不透明)却是件比较有挑战的事情,这里会给出一个可行的解决方案. ...

  9. VC 中用 IPicture 在窗口中显示图片文件

    #include <windows.h>  // Windows SDK 要用到的 #include <commdlg.h>  // 打开文件的窗口要包含这个头文件 //用到了 ...

最新文章

  1. 一个类及其对象初始化的过程
  2. C++相关:动态内存和智能指针
  3. 正则表达式的威力--轻松消除HTML代码
  4. [转]vue项目中,main.js,App.vue,index.html如何调用
  5. jq ajax提交评论,织梦评论怎么改成自己的jq ajax评论
  6. 【正则表达式】正则匹配注释
  7. Java Nested Classes(内部类~第一篇英文技术文档翻译)
  8. java毕业设计房屋租赁管理系统Mybatis+系统+数据库+调试部署
  9. 适用于Creo 4.0-6.0的PTC Creo EMX 12.0.2.8
  10. php 网页对话框插件,JavaScript_jquery插件hiAlert实现网页对话框美化,厌烦了IE浏览器的警告窗,伴 - phpStudy...
  11. qt.qpa.xcb: could not connect to display qt.qpa.plugin: Could not load the Qt platform plugin “xcb“
  12. mysql中as是什么意思_数据库中as是什么意思
  13. JVM 的GC 算法 分析
  14. Ubuntu linux ls 看到目录文件夹绿色高亮问题
  15. 用开源代码如何建立网站_建立全球开源法律网络
  16. Android自动伸展动画,Android:展开/折叠动画
  17. TC275——04Blinky-LED
  18. 使用百度天气API制作天气组件
  19. 云南中考计算机操作题,2015年云南省初中信息技术会考操作题及解题步骤.ppt
  20. 虚拟机中输入ifconfig不显示ip地址,如何解决

热门文章

  1. CodeForce 463C Gargari and Bishops(贪心+暴力)
  2. Http、Socket和WebService协议之间的区别
  3. ios 不同的数据类型转化为json类型
  4. K-Means 基本原理
  5. 鼠标聚焦到Input输入框时,按回车键刷新页面原因及解决方法
  6. [MVC]Controller
  7. java多线程之消费者生产者模式
  8. Java代码性能优化技巧
  9. [转]游戏中各种性能优化方法(不断更新)
  10. 海量数据库及分区4——《12年资深DBA教你Oracle开发与优化——性能优化部分》...