做了个小程序,供大家参考//源程序如下
#include <windows.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#define PI 3.1415926
int nNum=0,nMaxNum=20;
LRESULT CALLBACK WindowProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);
int WINAPI WinMain(
HINSTANCE hInstance, // handle to current instance
HINSTANCE hPrevInstance, // handle to previous instance
LPSTR lpCmdLine, // command line
int nCmdShow // show state
)
{
HWND hwnd;
MSG Msg;
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=WindowProc;
wndclass.lpszClassName="abc";
wndclass.lpszMenuName=NULL;
wndclass.style=0;
RegisterClass(&wndclass);
hwnd=CreateWindow("abc","旋转的风车",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,0,600,450,NULL,NULL,hInstance,NULL);
ShowWindow(hwnd,SW_SHOWNORMAL);
UpdateWindow(hwnd);
while(GetMessage(&Msg,hwnd,NULL,0))
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return 0;
}
LRESULT CALLBACK WindowProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
)
{
HDC hdc;
HBRUSH hBrush;
HPEN hp;
PAINTSTRUCT ps;
int nCenterX,nCenterY;
double fAngle;
switch(uMsg)
{
case WM_PAINT:
hdc=BeginPaint(hwnd,&ps);
SetMapMode(hdc,MM_ANISOTROPIC);
SetWindowExtEx(hdc,400,300,NULL);
SetViewportExtEx(hdc,600,450,NULL);
SetViewportOrgEx(hdc,300,200,NULL);
// 绘制外圆
hp=CreatePen(PS_SOLID,1,RGB(255,0,255));
SelectObject(hdc,hp);
Ellipse(hdc,-100,-100,100,100);
// 绘制风车的叶片
// 绘制红色的叶片
hBrush=CreateSolidBrush(RGB(255,0,0));
SelectObject(hdc,hBrush);
fAngle=2*PI/nMaxNum*nNum;
nCenterX=(int)(50*cos(fAngle));
nCenterY=(int)(50*sin(fAngle));
Pie(hdc,nCenterX-50,nCenterY-50,nCenterX+50,nCenterY+50,(int)(nCenterX+50*cos(fAngle)),(int)(nCenterY+50*sin(fAngle)),(int)(nCenterX+50*cos(fAngle+PI)),(int)(nCenterY+50*sin(fAngle+PI)));
// 绘制蓝色的叶片
hBrush=CreateSolidBrush(RGB(255,255,0));
SelectObject(hdc,hBrush);
nCenterX=(int)(50*cos(fAngle+2*PI/3));
nCenterY=(int)(50*sin(fAngle+2*PI/3));
Pie(hdc,nCenterX-50,nCenterY-50,nCenterX+50,nCenterY+50,(int)(nCenterX+50*cos(fAngle+2*PI/3)),(int)(nCenterY+50*sin(fAngle+2*PI/3)),(int)(nCenterX+50*cos(fAngle+PI+2*PI/3)),(int)(nCenterY+50*sin(fAngle+PI+2*PI/3)));
// 绘制黄色的叶片
hBrush=CreateSolidBrush(RGB(0,255,255));
SelectObject(hdc,hBrush);
nCenterX=(int)(50*cos(fAngle+4*PI/3));
nCenterY=(int)(50*sin(fAngle+4*PI/3));
Pie(hdc,nCenterX-50,nCenterY-50,nCenterX+50,nCenterY+50,(int)(nCenterX+50*cos(fAngle+4*PI/3)),(int)(nCenterY+50*sin(fAngle+4*PI/3)),(int)(nCenterX+50*cos(fAngle+PI+4*PI/3)),(int)(nCenterY+50*sin(fAngle+PI+4*PI/3)));
nNum++;
Sleep(100);
InvalidateRect(hwnd,NULL,1);
EndPaint(hwnd,&ps);
return 0;
case WM_CLOSE:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,uMsg,wParam,lParam);
}
return 0;
}
vc++程序-旋转的风车
时间: 2024-09-17 04:38:35
vc++程序-旋转的风车的相关文章
vc++编程问题-谁能帮忙把这个VC++程序上运行的纵坐标改动一下啊,跪求,急用……
问题描述 谁能帮忙把这个VC++程序上运行的纵坐标改动一下啊,跪求,急用-- 把第一个纵坐标改成0-20,第二个改成0-500,现在不能改动,而且已改动两个都会同时变化,且图形并不随改动值的变化而变化,急用,跪求了--不胜感激-- void CScope::DrawAxis(CDC *pDC) { CFont *pOldFont; int i,nPosY; CString str; pOldFont = pDC->SelectObject(&m_FontAxis); pDC->SetT
想做一个vc程序,后台监控指定文件夹中是否存在数据库文件,如果有则将文件内容上传到服务器数据库中。
问题描述 想做一个vc程序,后台监控指定文件夹中是否存在数据库文件,如果有则将文件内容上传到服务器数据库中. 有说可以写服务来后台监控的,但是我不太明白原理,服务是怎么实现后台监控, vc倒是可以直接生成一个服务,但是不清楚原理,完全不知道应该从哪下手. 希望有高手给解答一下. 解决方案 参考:http://blog.sina.com.cn/s/blog_a6fb6cc901017us1.html
非常感谢-数字图像处理中基于多文档的VC程序
问题描述 数字图像处理中基于多文档的VC程序 跪求大神基于多文档的将24位真彩塑BMP图像转换为8位灰度图像 解决方案 这里有现成的代码,而且有两个不同的算法,可以参考http://download.csdn.net/detail/schlafenhamster/3992785 解决方案二: 多文档只是界面.功能有了以后你就是集成到UI中去24位真彩色转换为8位灰度图 VC++ ..
c++-vc程序中调用控件的方法,谢谢。
问题描述 vc程序中调用控件的方法,谢谢. 程序中该如何调用ntgraph这个画图控件.我刚接触控件,现在仅能在对话框中插入该控件的水平.1.程序和控件是分别建个工程吗?2.在程序中该怎么调用控件呢?我想用这个控件的一个画图函数.百度后只了解到要在头文件中插入代码还有之类的看不懂了.希望有人能帮忙回答下或着发份相关资料,时间比较紧,十分感谢! 解决方案 这次请看清楚,不要采纳错了.谢谢 解决方案二: 新建一个mfc对话框程序,然后在对话框设计器中插入activex控件,选择你的控件即可. 参考:
c++-vc程序中使用控件的方法,谢谢。
问题描述 vc程序中使用控件的方法,谢谢. 程序中该如何调用ntgraph这个画图控件.我刚接触控件,现在仅能在对话框中插入该控件的水平.1.程序和控件是分别建个工程吗?2.在程序中该怎么调用控件呢?我想用这个控件的一个画图函数.百度后只了解到要在头文件中插入代码还有之类的看不懂了.希望有人能帮忙回答下或着发份相关资料,时间比较紧,十分感谢! 解决方案 VC6使用shakewaveflash控件方法解决VC6在win7中不能使用mscomm控件的方法VC中使用WebBrowser控件的两方法 解
mfc 对话框-vc++程序调试,出现winocc.cpp中的问题
问题描述 vc++程序调试,出现winocc.cpp中的问题 我自己编写了一个单文档的小程序,然后运行程序之后出现中断,进过调试寻找到是winocc.cpp中的void CWnd::GetProperty和void CWnd::SetProperty两个函数中的_ASSERT(m_pCtrlSite != NULL);均出现错误.希望大神能帮忙指出错误类型!!!谢谢!!! 解决方案 http://blog.sina.com.cn/s/blog_6084f5880100r3io.html 作为si
图片-VC程序打包遇到的问题
问题描述 VC程序打包遇到的问题 VC程序打包之前,编译运行都没有问题.打开相机时会有消息提示"相机打开成功". 但是我打包之后,运行exe,一打开相机,就会报错. 我觉得程序运行成功,说明程序没有问题,是我没有打包好.但是我打包的时候按照相机开发包中的说明将应该包含的DLL文件都包含了.我想不出问题出在哪里.希望各位大神鼎力相助,在此谢过各位! 解决方案 相关dll路径,都要正确,然后就是相机开发包的dll是不是需要注册等 解决方案二: [转载]VB.net程序的打包问题示例!NSI
mfc单文档-VC++程序调试,出现winocc.cpp中的问题!!!
问题描述 VC++程序调试,出现winocc.cpp中的问题!!! 我自己编写了一个单文档的小程序,然后运行程序之后出现中断,进过调试寻找到是winocc.cpp中的void CWnd::GetProperty和void CWnd::SetProperty两个函数中的_ASSERT(m_pCtrlSite != NULL);均出现错误.希望大神能帮忙指出错误类型!!!谢谢!!! 这是出错部分代码!! float* try::fun1( )//创建指定区域 { GET dlg; dlg.DoMod
vc++-VC程序 写入数据到数据库一直不成功?
问题描述 VC程序 写入数据到数据库一直不成功? DROP TABLE IF EXISTS `userlog`; CREATE TABLE `userlog` ( `id` int(11) NOT NULL AUTO_INCREMENT, `cameraChannel` int(11) NOT NULL, `cameraIp` varchar(255) NOT NULL, `cameraName` varchar(45) NOT NULL, `date` datetime NOT NULL, `