#include <windows.h>
#include "resource.h"long FAR PASCAL WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam);
long FAR PASCAL About(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam);static int wsize=0;
HINSTANCE _hInst;int FAR PASCAL WinMain(HINSTANCE hInstance,
   HINSTANCE hPrevInstance,
   LPSTR lpCmdLine,
   int nShowCmd)
{
HWND hWnd;
HACCEL hAccel;
MSG msg;
WNDCLASS wc; _hInst=hInstance;
//Register WNDCLASS class;
if(!hPrevInstance)
{
wc.style=CS_HREDRAW|CS_VREDRAW;
wc.lpfnWndProc=WndProc;
wc.cbClsExtra=0;
wc.cbWndExtra=0;
wc.hInstance=hInstance;
wc.hIcon=LoadIcon(hInstance,(LPCTSTR)IDI_ICON);
wc.hCursor=LoadCursor(hInstance,(LPCTSTR)IDC_CURSOR);
wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
wc.lpszMenuName=(const char *)IDR_MENU;
wc.lpszClassName="Simple";  RegisterClass(&wc);
}
//Create Window;
hWnd=CreateWindow("Simple","I love C++ ",
  //Styles
  WS_OVERLAPPEDWINDOW|CS_HREDRAW|CS_VREDRAW,
  100, //left point
  100, //top point
  350, //width of window
  350, //height of window
  NULL,
  NULL,
  hInstance,
  NULL);
ShowWindow(hWnd,nShowCmd); //show window;
UpdateWindow(hWnd); //update window;
//处理Accelerator  
           hAccel=LoadAccelerators(hInstance,(LPCTSTR)IDR_ACCELERATOR);  
 
           while(GetMessage(&msg,hWnd,0,0))  
           {  
                       if(!TranslateAccelerator(hWnd,hAccel,&msg))  
                       {  
                                   TranslateMessage(&msg);  
                                   DispatchMessage(&msg);  
                       }  
           }  
           return  msg.wParam;  
}  
 
long  FAR  PASCAL  WndProc(HWND  hWnd,UINT  message,WPARAM  wParam,LPARAM  lParam)  
{  
           HDC  hdc;  
           PAINTSTRUCT  ps;  
 
           switch(message)  
           {  
           case  WM_COMMAND:  
                       if(wParam==IDC_LOVE)  
                       {  
                                   wsize++;  
                                   SendMessage(hWnd,WM_PAINT,0,0);  
                                   InvalidateRect(hWnd,NULL,TRUE);  
                       }  
                       else  if(LOWORD(wParam)==IDC_ABOUT)  
                       {  
                                   if(_hInst==NULL)  
                                               MessageBox(hWnd,"_hInst  is  NULL","ERROR",MB_OK);  
                                   DialogBox(_hInst,"IDD_DIALOG1",hWnd,(DLGPROC)About);  
                       }  
                       break;  
           case    WM_PAINT:  
                       hdc=BeginPaint(hWnd,&ps);  
                       Rectangle(hdc,10,10,50+wsize*50,50+wsize*50);  
                       ValidateRect(hWnd,NULL);  
                       EndPaint(hWnd,&ps);  
                       break;  
           case  WM_DESTROY:  
                       PostQuitMessage(0);  
           }  
           return  DefWindowProc(hWnd,message,wParam,lParam);  
}  
 
long  FAR  PASCAL  About(HWND  hWnd,UINT  message,WPARAM  wParam,LPARAM  lParam)  
{  
             UNREFERENCED_PARAMETER(lParam);  
 
           switch(message)  
           {  
           case  WM_INITDIALOG:  
                       return  TRUE;  
                       break;  
           case  WM_COMMAND:  
                       if(LOWORD(wParam)==IDOK    &brvbar;  &brvbar;  LOWORD(wParam)==IDCANCEL)  
                       {  
                                   EndDialog(hWnd,TRUE);  
                                   return  TRUE;  
                       }  
                       break;  
           }  
           return  FALSE;  
}这里有三个问题:  
1.  我做的加速键没有作用.就是按F2键的时候,没有任何反映.  
2.  单击关闭按钮的时候,触发WM_DESTROY后,该应用程序的进程没有结束.再次编译的时候,会出问题,必须手工把该进程关闭(我用的是2000);  
3.在触发IDC_ABOUT后,对话框不能显示出来.  
 
请各位老大指教,不胜感激.