| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 822 人关注过本帖
标题:原本程序正常运行,我加了一段后结果一闪而过,求高人指点
只看楼主 加入收藏
奔跑的鸟
Rank: 1
等 级:新手上路
帖 子:391
专家分:0
注 册:2006-1-20
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
原本程序正常运行,我加了一段后结果一闪而过,求高人指点
我本来用wintc写了一段程序,但是因为无法再其他机器上运行,因此想用vc重新编译,
我先去C语言区《给我一个点我能描绘整个世界》帖子下载了那个程序,编译通过,运行正常
然后我在他画点函数后面加上了我的程序,结果窗体一闪而过,求指点,程序如下:

#include <windows.h>
#include<stdio.h>
#include<stdlib.h>
#include <conio.h>



#define  X 150
#define  Y 58
#define  N 5000



long WINAPI WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam);

BOOL InitWindowsClass(HINSTANCE hInstance);

BOOL InitWindows(HINSTANCE hInstance,int nCmdShow);

HWND hWndMain;

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);


int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPSTR lpszCmdLine,int nCmdShow)

{

MSG msg;

if(!InitWindowsClass(hInstance))

return FALSE;

if(!InitWindows(hInstance,nCmdShow))

return FALSE;


/* 消息循环核心 */

while(GetMessage(&msg,NULL,0,0))

{

TranslateMessage(&msg);

DispatchMessage(&msg);

}

return msg.wParam;

}


long WINAPI WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)

{

HDC hDC;

PAINTSTRUCT PtStr;

switch(iMessage)

{

case WM_PAINT:

hDC=BeginPaint(hWnd,&PtStr);


SetPixel(hDC, 320, 300, RGB(99, 99, 99)); /* 在窗口工作区坐标(320,200)处以黑色画点 */
/*以下为我添加的内容*/  
FILE *fp;
  int x,y;
  int buf[58][151];
  int jum[10];

  if((fp=fopen("test.txt","r"))==NULL)
  {
     printf("Erro");
     exit(0);
   }

  while(!kbhit())              /*目的是读取一个txt文件的内容 然后输出在屏幕窗体中*/
   {



   for(y=0;y<Y;y++)
      fread(buf[y],151,1,fp);
      fread(jum,10,1,fp);

   for(y=0;y<Y;y++)
      printf("%S",buf[y]);
      Sleep(N);

}

fclose(fp);

/*以上为我添加的内容*/


EndPaint(hWnd,&PtStr);

return 0;

case WM_DESTROY:

PostQuitMessage(0);

return 0;

default:

return DefWindowProc(hWnd,iMessage,wParam,lParam);

}

}


/*初始化WINDOWS窗口并显示它*/

BOOL InitWindows(HINSTANCE hInstance,int nCmdShow)

{

HWND hWnd;

hWnd=CreateWindow("WinGDI", /* 窗口类的名称 */

"使用GDI画点示例", /* 窗口标题 */

WS_OVERLAPPEDWINDOW, /* 窗口风格 */

0, /* 窗口位置:X轴*/

0, /* 窗口位置:Y轴*/

800, /* 窗口的高 */

600, /* 窗口的宽 */

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="WinGDI";

wndClass.lpszMenuName=NULL;

wndClass.style=CS_HREDRAW|CS_VREDRAW;

return RegisterClass(&wndClass); /* 注册窗口类 */

}
搜索更多相关主题的帖子: C语言 
2011-01-12 10:07
红色警戒
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:19
帖 子:444
专家分:2967
注 册:2005-11-20
收藏
得分:20 
估计是执行红色区域中的exit(0);了

2011-01-12 10:47
奔跑的鸟
Rank: 1
等 级:新手上路
帖 子:391
专家分:0
注 册:2006-1-20
收藏
得分:0 
回复 2楼 红色警戒
哦 那意思是说打开文件失败了是吧....

简单的快乐着~
2011-01-12 10:53
奔跑的鸟
Rank: 1
等 级:新手上路
帖 子:391
专家分:0
注 册:2006-1-20
收藏
得分:0 
回复 2楼 红色警戒
哦 我忘了吧 txt文件 弄过去了 哈哈 谢谢谢谢
但是 程序 运行可以了
却是卡死的 没有响应 是循环那里的问题吧 我改成while(1)也不行 这个循环该怎么改呢 求教

简单的快乐着~
2011-01-12 10:57
快速回复:原本程序正常运行,我加了一段后结果一闪而过,求高人指点
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011261 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved