#include<windows.h>
#include<tchar.h>
LRESULT CALLBACK WINAPI WndProc
(HWND,UINT,UINT,LONG);//窗口函数说明
//WinMain入口函数,完成一系列定义和初始化工作,产生消息循环
int WINAPI WinMain
(HINSTANCE hInstance,//应用程序当前实例句柄
HINSTANCE hPrevInstance,//应用程序其他实例句柄
LPSTR szCmdLine,//指向程序命令行参数的指针
int iCmdShow)//应用程序开始执行时窗口显示方式的整数值标识
{
WNDCLASS wndcls;//初始化 窗口类的定义
//为窗口类各个字段赋值
wndcls.cbClsExtra = NULL;//分配在窗口类结构后的字节数(窗口类无扩展)
wndcls.cbWndExtra = NULL;//分配在窗口实例后的字节数(窗口实例无扩展)
wndcls.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);//窗口类的背景刷(白色)
wndcls.hCursor= LoadCursor(NULL,IDC_CROSS);//光标
wndcls.hIcon = LoadIcon(NULL,IDI_APPLICATION);//最小化图标为缺省图标
wndcls.hInstance = hInstance;//创建窗口的应用程序当前句柄
wndcls.lpfnWndProc = WndProc;//窗口处理函数为WinProc
wndcls.lpszClassName = _T("win32");//窗口类名
wndcls.lpszMenuName = NULL;//窗口中无菜单
wndcls.style = CS_HREDRAW|CS_VREDRAW;//样式
//注册窗口类
RegisterClass(&wndcls);
//创建窗口类
HWND hwnd = CreateWindow
(_T("Win32"),//窗口类名
_T("文本动画输出"),//窗口标题名
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL);
//显示窗口
ShowWindow(hwnd,iCmdShow);
UpdateWindow(hwnd);//更新并绘制用户区
//消息循环
MSG msg;
while (GetMessage(&msg,NULL,0,0))//从消息队列中读取一条消息并放在MSG结构中
{
TranslateMessage(&msg);//将消息虚拟键转换为字符消息
DispatchMessage(&msg);//将消息传送到指定窗口
}
return msg.wParam;//检测到WM_QUIT消息,程序结束循环并退出
};
LRESULT CALLBACK WINAPI WndProc
(HWND hwnd,//接收消息的窗口句柄
UINT iMessage,//消息值
UINT wParam,
LONG lParam)
{
int iFontFlag;
HDC hDC; //定义设备环境句柄.
HFONT hF; //定义字体句柄.
PAINTSTRUCT ps; //定义包含绘图信息的结构体变量
TEXTMETRIC tm; //定义包含字体信息的结构体变量.
char lpsz_1[]="欲穷千里目 更上一层楼"; //定义输出字符串.
char chFont[7]; //定义包含字体的字符串.
int X=0,Y=0,nCharlen=strlen(lpsz_1);
switch(iMessage)
{
case WM_CREATE:
SetTimer(hwnd,1,200,NULL);
//设定定时器.每0.2秒发出WM_TIMER消息.
break;
case WM_TIMER:
InvalidateRect(hwnd,NULL,1); //刷新用户区.
break;
case WM_PAINT: //处理绘图消息.
hDC=BeginPaint(hwnd,&ps); //获取设备环境指针.
if(iFontFlag/nCharlen==0) //设置字体颜色.
{ SetTextColor(hDC,RGB(255,0,0));
strcpy(chFont,"楷体");
}
else if(iFontFlag/nCharlen==1)
{ SetTextColor(hDC,RGB(0,255,0));
strcpy(chFont,"隶书");
}
else if(iFontFlag/nCharlen==2)
{ SetTextColor(hDC,RGB(255,255,0));
strcpy(chFont,"宋体");
}
else if(iFontFlag/nCharlen==3)
{ SetTextColor(hDC,RGB(0,0,255));
strcpy(chFont,"黑体");
}
else
{ iFontFlag=0;
SetTextColor(hDC,RGB(255,0,0));
}
//设置字体.
hF=CreateFont( //获得字体句柄.
40, //字体高度
0, //系统自动调整宽度.
0, //文本水平
0, //字体倾斜度为0
400, //字体粗度.400为正常.
0, //字体不倾斜.
0, //无下划线.
0, //无中划线.
GB2312_CHARSET, //字符集
OUT_DEFAULT_PRECIS, //默认输出精度.
CLIP_DEFAULT_PRECIS, //默认裁剪精度
DEFAULT_QUALITY, //默认输出质量.
DEFAULT_PITCH|FF_DONTCARE,//默认间距
chFont); //字体名称.
SelectObject(hDC,hF); //选入字体.
GetTextMetrics(hDC,&tm); //得到字体的信息.
TextOut(hDC,X,Y,&lpsz_1[iFontFlag%nCharlen],
nCharlen-iFontFlag%nCharlen); //输出.
iFontFlag+=2; //字体标志自增.
DeleteObject(hF); //删除字体.
EndPaint(hwnd,&ps); //删除设备环境指针.
return 0;
case WM_DESTROY: //结束.
PostQuitMessage(0);
KillTimer(hwnd,1); //删除定时器.
return 0;
default:
return(DefWindowProc(hwnd,iMessage,wParam,lParam));
}
return 0;
};
显示end of file found before the left brace '{' was matched
有没有大佬看一下呜呜呜,万分感谢!