2 clearjun clearjun 于 2014.10.14 16:07 提问

刚刚抄的一个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);
}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
编译通过,无法启动程序.dll
代码编译通过,却无法启动程序,可能是因为在创建工程的时候创建错了我就犯了这样一个错误,创建工程的时候估计手抖了,创建了一个动态库,生成.dll文件,咋也跑不起来,也不显示原因。 一个新手检查不出这样的问题,而老手不会犯这样的低级错误,解决方法:重新创建一个正确的工程,原代码贴过去就好了。 差别在这里:
离开公司前的肺腑之言
首先,感谢公司这一年以来对我的栽培,更感谢这一年以来各位同仁对我的关心与帮助。在此,深表感谢!在我离开公司之际,想给公司留点东西。每个人都有自己的优点和缺点,相信我程平平也不例外。所以我想我下面的话不管是否正确,但是我的一片诚心。本很早以前就想写,但一直没有下笔。 在还没有开始话题之前我想申明一下,我以下所有话都是站在一个旁观的角度,也就是说我抛开了您是我的领导这层界线。我想这样才能吐真言
基于Linux系统调用使用php实现一个在线编译运行C语言程序的系统
<br />     前段时间给学校做一个在线练习C语言程序和C语言考试的系统,服务器架构是LAMP的。因为其他的都没什么好多的,要实现在线编译只要exec()函数直接调用gcc进行编译就行了,$compile_str = "gcc ".$filename." -o ".$prog_name." 2>"."compile_result.txt;iconv -f UTF-8 -t GB2312 "."compile_result.txt -o compile_res.txt"; <br />    这里解释一
一个c程序编译运行的步骤
一个c程序的步骤: 1、编写c代码: 1.5、在编译前会行进行预编译指令,如:include指令,就是将.h中文件中的内容copy过来 2、编译中的目标代码:二进制。这个过程c的编译器来完成 这个过程c的编译器来完成 会对c程序的语法进度检测。 扩展名一般为”.obj”,如:mj.c –> mj.obj 目标文件中不包括程序运行所需要的库函数 每一个源文
C语言学习篇-1Hello, World!(编写、编译、链接、运行)
说明:初识第一个程序。开发工具的选择 写代码的工具:记事本、ULtraEdit、Vim、Xcode等。 选择Xcode的原因:苹果公司官方提供的开发利器、简化开发的工程、有高亮显示功能。 代码编写 程序结构 C程序的结构:由函数组成。 任何一个C语言程序都是由一个或者多个程序段(小程序)构成的,每个程序段都有自己的功能,我们一般称这些程序段为“函数”。所以,你可以说C语言程序是由函数构成的。 函数
Windows下使用Codeblocks写c语言socket
如何在Windows下使用Codeblocks写c语言socket 首先新建一个工程 然后右键点击工程名称->Build options->Linker setting 在Link libraries->add->在codeblocks安装路径下MinGW\lib下找到libwsock32.a,加入工程 在Other linker options下加入-lwsock32 书写符合winsoc
我用dev-c++编译的C程序,为什么程序一运行就自动关闭
有3种简单方法:自己加上程序语句1.加头文件#include 然后在最后加system("pause");2.加头文件#include 最后加一句getch();3.在最后加getchar();
Window下的dos环境下编译运行下运行c程序
本文主要转载(不全是)于:http://blog.sina.com.cn/s/blog_5e94b103010141oa.html(谢谢你了,沧海哥) 文章里还有博主自己的愚见!!! 博主也是在看到命令行参数(arg[1], arg[2])的时候,觉得一般的编译器都不能输入类似于命令行参数的命令,跟linux完全不一样(人家有自己的gcc,可以输入命令行参数),就想着dos底下应该也可以编译c程序的,一定的。 首先写一个完好的C语言程序,可以运行的通,自然是简单就好,下面给出一个简单的示例
英语口语练习四十之地道口语:感谢及回应感谢的英语表达
表达感谢有很多英语运用方式:1.Thank you.谢谢作为最普遍的表达感谢的语句,与此相同的意思表达为Thanks。2.Thank you very much.非常感谢在Thank you 后面加上程度词,表达了对对方的感激程度之深,此外还有:Thanks a lot 非常感谢;Thank you so much 非常感谢;Thanks a bundle 非常感谢”a bundle”常作为量词,为
运行C#编译出来的命令行程序出现“系统无法执行指定的程序。”的原因及解决方案
<br />运行C#编译出来的命令行程序出现“系统无法执行指定的程序。”的原因及解决方案<br />相应的配置文件有问题,比如程序名称为app.exe,那个app.exe.config文件要用utf-8的编码