一个简单的窗口程序

#include <windows.h>
#include <stdio.h>

LRESULT CALLBACK WinSunProc(
       HWND hwnd,      // handle to window
       UINT uMsg,      // message identifier
       WPARAM wParam,  // first message parameter
       LPARAM lParam   // second message parameter
);

int WINAPI WinMain(
       HINSTANCE hInstance,      // handle to current instance
       HINSTANCE hPrevInstance,  // handle to previous instance
       LPSTR lpCmdLine,          // command line
       int nCmdShow              // show state
)
{
 WNDCLASS wndcls;
 wndcls.cbClsExtra=0;
 wndcls.cbWndExtra=0;
 wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
    wndcls.hCursor=LoadCursor(NULL,IDC_CROSS);
    wndcls.hIcon=LoadIcon(NULL,IDI_ERROR);
 wndcls.hInstance=hInstance;
 wndcls.lpfnWndProc=WinSunProc;
 wndcls.lpszClassName="edward nic";
 wndcls.lpszMenuName=NULL;
 wndcls.style=CS_HREDRAW | CS_VREDRAW;

 RegisterClass(&wndcls);

 HWND hwnd;
 hwnd=CreateWindow("edward nic","wuhan edward nic",WS_OVERLAPPEDWINDOW,0,0,600,400,NULL,NULL,hInstance,NULL);

 ShowWindow(hwnd,SW_SHOWNORMAL);
 UpdateWindow(hwnd);

 MSG msg;
 while (GetMessage(&msg,NULL,0,0))
 {
  TranslateMessage(&msg);
  DispatchMessage(&msg);
 }
 return 0;
}

LRESULT CALLBACK WinSunProc(
       HWND hwnd,      // handle to window
       UINT uMsg,      // message identifier
       WPARAM wParam,  // first message parameter
       LPARAM lParam   // second message parameter
)
{
 switch(uMsg)
 {
    case WM_CHAR:
  char szchar[20];
  sprintf(szchar,"char is %d",wParam);
  MessageBox(hwnd,szchar,"edward",MB_OK);
  break;
 case WM_LBUTTONDOWN:
        MessageBox(hwnd,"mouse clicked","edward",MB_OK);
  HDC hDC;
  hDC=GetDC(hwnd);
  TextOut(hDC,0,50,"计算机编程",strlen("计算机编程"));
  ReleaseDC(hwnd,hDC);
  break;
 case WM_PAINT:
  HDC hdc;
  PAINTSTRUCT ps;
  hdc=BeginPaint(hwnd,&ps);
  TextOut(hdc,0,0,"计算机编程",strlen("计算机编程"));
  EndPaint(hwnd,&ps);
  break;
 case WM_CLOSE:
  if (IDYES==MessageBox(hwnd,"是否结束","edward",MB_YESNO))
  {
   DestroyWindow(hwnd);
  }
  break;
    case WM_DESTROY:
        PostQuitMessage(0);
  break;
 default:
  return DefWindowProc(hwnd,uMsg,wParam,lParam);
 }
 return 0;
}

 

posted @ 2007-03-12 19:26  Edward Xie  阅读(160)  评论(0编辑  收藏  举报