#include"windows.h"
#include"stdlib.h"
#include"string.h"long WINAPI WndProc(HWND hWnd,UINT iMessage, UINT wParam,LONG lParam);
BOOL InitWindowsClass(HINSTANCE hInstance);
BOOL InitWindows(HINSTANCE hInstance,int nCmdShow);
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,NULL,0,0))
{TranslateMessage(&Message);
DispatchMessage(&Message);}
return Message.wParam;}
long WINAPI WndProc(HWND hWnd,UINT iMessage, UINT wParam,LONG lParam)
{HDC hDC;
HFONT hf;
PAINTSTRUCT Ptstr;
TEXTMETRIC tm;
char Char[]="abcdefghijklmnopqrstuvwxyz";
int nChar=1,Y=0,X=0,nCharlen=26;
bool bRight=TRUE,bLeft=FALSE,bItalic=TRUE;
int i=0;
switch(iMessage)
{
case WM_PAINT:
hDC=BeginPaint(hWnd,&Ptstr);
GetTextMetrics(hDC,&tm);    
Y=tm.tmExternalLeading+10;
for( i=0;i<nChar;i++)
{SetTextColor(hDC,RGB(0,0,0));
X=X+tm.tmAveCharWidth*2;
TextOut(hDC,X,Y,&Char[i],1);}
SetTextColor(hDC,RGB(255,0,0));
X=X+tm.tmAveCharWidth*2;
Y=tm.tmExternalLeading;
TextOut(hDC,X,Y,&Char[nChar],1);
Y=tm.tmExternalLeading+10;
for(i=nChar+1;i<nCharlen;i++)
{SetTextColor(hDC,RGB(0,255,0));
X=X+tm.tmAveCharWidth*2;
TextOut(hDC,X,Y,&Char[i],1);}
if(nChar==nCharlen)
{bRight=FALSE;
bLeft=TRUE;}
else if(nChar==0)
{bRight=TRUE;
bLeft=FALSE;}
if(bRight)
nChar++;
else
nChar--;
hf=CreateFont(40,
  0,0,
  0,0,bItalic,0,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH,"斜体");
SelectObject(hDC,hf);
X=tm.tmAveCharWidth*2;
Y=100+tm.tmExternalLeading*2;
if(bItalic==TRUE)
SetTextColor(hDC,RGB(0,0,0));
else
SetTextColor(hDC,RGB(0,255,255));
TextOut(hDC,X,Y,Char,strlen(Char));
if(bItalic==TRUE)
bItalic=FALSE;
else
bItalic=TRUE;
DeleteObject(hf);
EndPaint(hWnd,&Ptstr);
Sleep(100);InvalidateRect(hWnd,NULL,1);return 0;
break;
case WM_DESTROY:PostQuitMessage(0);
return 0;
break;
default:
return DefWindowProc(hWnd,iMessage,wParam,lParam);
break;}
return 0;}BOOL InitWindows(HINSTANCE hInstance,int nCmdShow)
{HWND hWnd;
hWnd=CreateWindow("SIN",                           
  "字体",
  WS_OVERLAPPEDWINDOW,
0,
0,
CW_USEDEFAULT,
                    CW_USEDEFAULT,
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="SIN";
WndClass.lpszMenuName=NULL;
WndClass.style=CS_HREDRAW|CS_VREDRAW;
return RegisterClass(&WndClass);
}
这是一个WIN32程序,
这段代码可以通过编译但是
if(bRight)
nChar++;
else
nChar--;
好像没有起到任何作用,因为没有实现预期的动态显示结果!!求高人指点,不胜感激!