孙鑫老师VC++深入详解第一节课源代码(这样写更好理解)

孙鑫老师VC++深入详解第一节课源代码(这样写更好理解)

// test.cpp : 定义应用程序的入口点。
//

#include "stdafx.h"
#include "test.h"
#include <windows.h>
#include <stdio.h>

LRESULT CALLBACK WinSunProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
int WINAPI WinMain( HINSTANCE hInstance,HINSTANCE hPrevInstance,  LPSTR lpCmdLine,int nCmdShow)
{
 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="sunxin2006";
 wndcls.lpszMenuName=NULL;
 wndcls.style=CS_HREDRAW | CS_VREDRAW;
 RegisterClass(&wndcls);

 HWND hwnd;
 hwnd=CreateWindow("sunxin2006","http://www.qqtu88.com",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 msg.wParam;
}

LRESULT CALLBACK WinSunProc(HWND hwnd, UINT uMsg,WPARAM wParam,LPARAM lParam)
{
 switch(uMsg)
 {
 case WM_CHAR:
  char szChar[20];
  sprintf(szChar,"char code is %d",wParam);
  MessageBox(hwnd,szChar,"char",0);
  break;
 case WM_LBUTTONDOWN:
  MessageBox(hwnd,"mouse clicked","message",0);
  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,"http://www.qutuku.com",strlen("http://www.qqtu88.com"));
  EndPaint(hwnd,&ps);
  break;
 case WM_CLOSE:
  if(IDYES==MessageBox(hwnd,"是否真的结束?","message",MB_YESNO))
  {
   DestroyWindow(hwnd);
  }
  break;
 case WM_DESTROY:
  PostQuitMessage(0);
  break;
 default:
  return DefWindowProc(hwnd,uMsg,wParam,lParam);
 }
 return 0;
}

posted @ 2011-10-07 17:26  天涯海客  阅读(1101)  评论(0编辑  收藏  举报