c++ 作图-刚刚抄的一个c++画图程序,编译通过无法运行,感谢各位指教,虚心学习

问题描述

刚刚抄的一个c++画图程序,编译通过无法运行,感谢各位指教,虚心学习

#include
#include
#include
#include
#define pi 3.1415926

long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam);
bool InitWindowsClass(HINSTANCE hIntance);
bool InitWindows(HINSTANCE hInstance,int nCmdShow);

double deTheta=0,dfRange=100.0;//正弦曲线的角度变量
long i=0,j=0;
long lCentreX=0,lCenterY=0,lRadious=(long)(0.2*dfRange);
POINT lpSin[100];
HWND hWndMain;

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;
}

//......定义WinProc函数........
long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam)
{
HDC hDC;//定义设备环境句柄
HBRUSH hBrush;
HPEN hPen;
for(int j=0;j<100;j++)
{
lpSin[j].x=(long)(j*2*pi/100*60);
lpSin[j].y=(long)(dfRange*sin(j*2*pi/100));
}
PAINTSTRUCT PtStr;//定义包含绘图信息的结构体变量
switch(iMessage)
{
case WM_PAINT:{ //处理绘图信息
hDC=BeginPaint(hWnd,&PtStr);//获取设备环境指针
SetWindowOrgEx(hDC,-200,-200,NULL);//设置原点
hPen=CreatePen(PS_DASH,1,RGB(255,0,0));
SelectObject(hDC,hPen);
Polyline(hDC,lpSin,100);//绘制正弦曲线
//第一个四分之一周期
if(i<=25)
{
hPen=CreatePen(PS_DASH,1,RGB(255,0,0));
hBrush=CreateHatchBrush(HS_BDIAGONAL,RGB(255,0,0));
lRadious=(long)(dfRange*0.2+i%25*dfRange*0.4/25);
}
//第二个四分之一周期
else if(i<=50)
{
hPen=CreatePen(PS_DASH,1,RGB(0,255,0));
hBrush=CreateHatchBrush(HS_BDIAGONAL,RGB(0,255,0));
lRadious=(long)(dfRange*0.2+i%25*dfRange*0.4/25);
}
//第三个四分之一周期
else if(i<=75)
{
hPen=CreatePen(PS_DASH,1,RGB(0,0,225));
hBrush=CreateHatchBrush(HS_BDIAGONAL,RGB(0,0,225));
lRadious=(long)(dfRange*0.2+i%25*dfRange*0.4/25);
}
//第四个周期
else if(i<=100)
{
hPen=CreatePen(PS_DASH,1,RGB(255,255,0));
hBrush=CreateHatchBrush(HS_BDIAGONAL,RGB(255,255,0));
lRadious=(long)(dfRange*0.2+i%25*dfRange*0.4/25);
}
SelectObject(hDC,hBrush);//选入画刷
SelectObject(hDC,hPen);
long lCentreX=0,lCentreY=0;
lCentreX=lpSin[i].x;
lCentreY=lpSin[i].y;
Ellipse(hDC,lCentreX-lRadious,lCentreY-lRadious,lCentreX+lRadious,lCentreY+lRadious);//画图
i++;
DeleteObject(hPen);
DeleteObject(hBrush);
EndPaint(hWnd,&PtStr);//删除设备指针
Sleep(100);
if(1<100)InvalidateRect(hWnd,NULL,1);//刷新用户区
return 0;
}
case WM_DESTROY:{
PostQuitMessage(0);
return 0;
}
default:
return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}}

bool InitWindows(HINSTANCE hInstance,int nCmdShow)
{
HWND hWnd;
hWnd=CreateWindow("WinFill","填充程序",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,"END");
WndClass.hInstance=hInstance;
WndClass.lpfnWndProc=WndProc;
WndClass.lpszClassName="WinFill";
WndClass.lpszMenuName=NULL;
WndClass.style=CS_HREDRAW|CS_VREDRAW;
return RegisterClass(&WndClass);
}

时间: 2024-11-05 16:29:48

c++ 作图-刚刚抄的一个c++画图程序,编译通过无法运行,感谢各位指教,虚心学习的相关文章

makefile-在linux写的一个简单的程序 编译不能通过 求大神给看看

问题描述 在linux写的一个简单的程序 编译不能通过 求大神给看看 解决方案 总共有3个文件 test.h test.cpp main.cpp; 在main.cpp内部调用test类实现的方法,执行make命令后,可以生成test.o和main.o但是好像链接的时候有问题, 不能生成目标问题 解决方案二: 找出问题来了 是makefile文件写的有问题 编译应该使用g++ 代码有问题的地方 希望各位指正 解决方案三: 提示信息是函数没有定义,链接返回错误.

一个数组小练习编译通过,运行出错!

问题描述 一个数组小练习编译通过,运行出错!在myeclipse上没有显示错误信息代码如下,请协助!packagepart1;publicclassTestArray{publicstaticvoidmain(String[]args){if(args.length<3){System.out.println("errorlength,pls.re-enter!");System.exit(-1);}doubled1=Double.parseDouble(args[0]);dou

HTML5使用Canvas做一个在线画图程序(支持把画布保存为图像)

1,在线画图板的开发 (1)页面加载后,我们取得<canvas>对象,为它添加一些处理函数,以便处理不同鼠标操作导致的JavaScript事件:onmousedown.onmouseup.onmouseout.onmousemove. (2)画布上方了两个工具栏可以选择笔画颜色和笔画粗细.点击里面的<img>元素,会调用对应绑定的方法,从而将 strokeStyle 属性设置不同的颜色,或将 lineWidth 属性设置不同的粗细. 在线Demo如下: <!DOCTYPE h

【求助】一个简单的程序在模拟器上运行没问题,装在手机上就不行。

问题描述 初学JavaME,为了通过JavaME应用手机蓝牙功能,编写了一个最简单的获得本地设备信息的程序.在Eclipse中使用WTK模拟器能正常运行,打包后在手机上可以安装成功,但是程序就不能运行了,请高手帮忙.程序代码如下:importjavax.bluetooth.BluetoothStateException;importjavax.bluetooth.DeviceClass;importjavax.bluetooth.LocalDevice;importjavax.microedit

精通Grails: 构建您的第一个Grails应用程序

请允许我借助另一种开源 Web 开发框架 -- Ruby on Rails -- 来介绍 Grails.Rails 一发布就 迷住了开发人员.Rails 的脚手架功能使您可以用以前所需时间的一小部分完成一个新的项目.支持 Rails 的约定优于配置(convention over configuration)思想意味着,应用程序可以根据常识性的命 名模式自动进行组装(auto-wire),而不必借助繁杂的.容易出错的 XML 配置文件.Ruby 的元编程功 能使对象可以神奇地在运行时继承所需的方

c#-C#编写一个一次性口令程序

问题描述 C#编写一个一次性口令程序 (1) 编写一个一次性口令程序 (2) 运行该口令程序,屏幕上弹出一个仿Windows窗口,提示用户输入口令,并给出提示模式. (3) 用户输入口令,按照一次性算法计算比较,符合,给出合法用户提示:否则给出非法用户提示. (4) 再一次运行口令程序,如果输入与第一次同样的口令,系统应当拒绝,提示非法用户.每次提示和输入的口令都是不一样的. (5) 写出设计说明(含公式.算法,随机数产生法,函数调用和参数传递方式)

一个C/C++程序内存分配形式

一:一个C/C++程序编译之后在内存中一般分为五个部分 1. 程序代码区:程序代码区主要用来存放程序执行代码,包括类成员函数.全局函数.静态函数等其它函数的代码.这部分内存区域的大小在程序运行前就已经确定了,并且内存通常是只读的.一般程序代码区是可以被共享的 2. 常量区:用来存放常量的内存区域,程序结束后由操作系统收回 3. 全局数据区(静态存储区):存放全局变量和静态变量,程序结束后由操作系统收回.     全局变量.静态全局变量.静态局部变量都是在静态存储区分配空间的. 4. 堆区:堆用于

c语言-本人编程初学,刚刚编写了一个整数的比较大小的小程序,希望大神帮我看看

问题描述 本人编程初学,刚刚编写了一个整数的比较大小的小程序,希望大神帮我看看 希望大神帮我看一下是不是可以比较整数的所有情况,而且此算法有点复杂,可以怎样简化 #include int main() { int compare(int a,int b); int x,y,c,g; printf("请输入两个整形数用于比较大小:n"); scanf("%d,%d",&x,&y); c=compare(x,y); if(c==g) printf(&qu

安卓:开发一个手机画图应用,怎样实现鼠标点到哪里,哪里就出现一个小图案,如下图

问题描述 安卓:开发一个手机画图应用,怎样实现鼠标点到哪里,哪里就出现一个小图案,如下图 解决方案 下面的布局设置监听事件,点一下先get绝对坐标,再添加img图案在该坐标. 解决方案二: ontouch中获取手指点击坐标 canvas.drawBitmap绘制图案