原本程序正常运行,我加了一段后结果一闪而过,求高人指点
我本来用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); /* 注册窗口类 */
}