#include "windows.h"
#include "stdlib.h"
#include "string.h"
long WINAPI WndProc(HWND hwnd,UINT message,UINT wParam,LONG lParam);
BOOL InitWindowsClass(HINSTANCE hInstance);
BOOL InitWindows(HINSTANCE hInstance,int nCmdShow);
//主函数
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
)
{
MSG Msg;
if (!InitWindowsClass(hInstance)) {
return FALSE;
}
if (!InitWindows(hInstance,nCmdShow)) {
return FALSE;
}
while (GetMessage(&Msg,0,0,0)) {
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return Msg.wParam;
}
//消息处理程序
long WINAPI WndProc(HWND hwnd,UINT message,UINT wParam,LONG lParam)
{
HDC hDC;
static int flag=0;
static int i=0;
TEXTMETRIC tm;
PAINTSTRUCT PtStr;
HFONT hf;
char textbuf[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
switch(message) {
case WM_PAINT:
hDC=BeginPaint(hwnd,&PtStr);
hf=CreateFont(30,20,0,0,FW_HEAVY,0,0,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,DEFAULT_PITCH|FF_DONTCARE,"粗体字");
SetTextColor(hDC,RGB(255,0,0));
SetBkColor(hDC,BLACK_BRUSH);
SelectObject(hDC,hf);
if (flag==0) {
for(;i<=25;i++){
if (i%4==0) {
SetTextColor(hDC,RGB(255,50,10));
TextOut(hDC,i*30,0,&textbuf[i],1);
}
if (i%4==1) {
SetTextColor(hDC,RGB(255,255,0));
TextOut(hDC,i*30,20,&textbuf[i],1);
}
if (i%4==2) {
SetTextColor(hDC,RGB(0,255,10));
TextOut(hDC,i*30,40,&textbuf[i],1);
}
if (i%4==3) {
SetTextColor(hDC,RGB(255,0,255));
TextOut(hDC,i*30,20,&textbuf[i],1);
}
}
InvalidateRect(hwnd,NULL,1);
}
if (flag==1) {
for(;i<=25;i++){
if (i%4==0) {
SetTextColor(hDC,RGB(0,255,50));
TextOut(hDC,i*30,20,&textbuf[i],1);
}
if (i%4==1) {
SetTextColor(hDC,RGB(60,255,0));
TextOut(hDC,i*30,40,&textbuf[i],1);
}
if (i%4==2) {
SetTextColor(hDC,RGB(255,0,0));
TextOut(hDC,i*30,20,&textbuf[i],1);
}
if (i%4==3) {
SetTextColor(hDC,RGB(255,80,100));
TextOut(hDC,i*30,0,&textbuf[i],1);
}
}
InvalidateRect(hwnd,NULL,1);
}
if (flag==2) {
for(;i<=25;i++){
if (i%4==0) {
SetTextColor(hDC,RGB(0,255,255));
TextOut(hDC,i*30,40,&textbuf[i],1);
}
if (i%4==1) {
SetTextColor(hDC,RGB(255,0,0));
TextOut(hDC,i*30,20,&textbuf[i],1);
}
if (i%4==2) {
SetTextColor(hDC,RGB(30,80,255));
TextOut(hDC,i*30,0,&textbuf[i],1);
}
if (i%4==3) {
SetTextColor(hDC,RGB(90,200,30));
TextOut(hDC,i*30,20,&textbuf[i],1);
}
}
InvalidateRect(hwnd,NULL,1);
}
if (flag==3) {
for(;i<=25;i++){
if (i%4==0) {
SetTextColor(hDC,RGB(20,80,66));
TextOut(hDC,i*30,20,&textbuf[i],1);
}
if (i%4==1) {
SetTextColor(hDC,RGB(55,80,255));
TextOut(hDC,i*30,0,&textbuf[i],1);
}
if (i%4==2) {
SetTextColor(hDC,RGB(80,80,80));
TextOut(hDC,i*30,20,&textbuf[i],1);
}
if (i%4==3) {
SetTextColor(hDC,RGB(255,100,20));
TextOut(hDC,i*30,40,&textbuf[i],1);
}
}
InvalidateRect(hwnd,NULL,1);
}
i=0;
flag++;
flag=flag%4;
Sleep(200);
// InvalidateRect(hwnd,NULL,1);
EndPaint(hwnd,&PtStr);
return 0;
break;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
default:
return(DefWindowProc(hwnd,message,wParam,lParam));
}
}
//初始化窗口
BOOL InitWindowsClass(HINSTANCE hInstance)
{
WNDCLASS WndClass;
WndClass.cbClsExtra=0;
WndClass.cbWndExtra=0;
WndClass.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
WndClass.hIcon=LoadIcon(NULL,"END");
WndClass.hInstance=hInstance;
WndClass.lpfnWndProc=WndProc;
WndClass.lpszClassName="我的窗口";
WndClass.lpszMenuName=NULL;
WndClass.style=CS_HREDRAW|CS_VREDRAW;
return RegisterClass(&WndClass);
}
BOOL InitWindows(HINSTANCE hInstance,int nCmdShow)
{
HWND hwnd;
hwnd=CreateWindow(
"我的窗口",
"文本显示例程序",
WS_OVERLAPPEDWINDOW,
0,
0,
800,
500,
NULL,
NULL,
hInstance,
NULL);
if (!hwnd) {
return FALSE;
}
ShowWindow(hwnd,nCmdShow);
UpdateWindow(hwnd);
return TRUE;
}