资讯   |   开发   |   选机中心   |   产品大全 | IBM | 惠普 | 联想 | 戴尔 | 苹果 | 神舟
更多: | 华硕 | 明基 | 方正 | 紫光 | TCL | 夏新 | 联宝 | 宏碁 | 七喜 | 长城 | 清华同方 | 海尔 | 三星 | 东芝 | 索尼 | 富士通 | LG | 技术 | ddnoon
当前位置:笔记本 > 软件开发 >
Advertisement
文章正文

请帮帮我这只菜鸟(一个例程)

类型:转载   责任编辑:asp.net   日期:2007/05/23


热门软件下载:


   

#include   <windows.h>  
  //函数原型  
  int   WINAPI   WinMain(HINSTANCE,HINSTANCE,LPSTR,int);  
  LRESULT   WINAPI   WndProc(HWND,UINT,WPARAM,LPARAM);  
  //WinMain函数  
  int   WINAPI   WinMain(HINSTANCE   hInstance,  
        HINSTANCE   hPrevInstance,  
        LPSTR   lpCmdLine,  
        int   nShowCmd)  
  {  
  HWND   hWnd;  
  MSG   msg;  
  WNDCLASS   wc;  
  if   (!hPrevInstance)  
  {  
  //填充窗口类信息  
  wc.style=CS_HREDRAW|CS_VREDRAW;  
  wc.lpfnWndProc=WndProc;  
  wc.cbClsExtra=0;  
  wc.cbWndExtra=0;  
  wc.hInstance=hInstance;  
  wc.hIcon=LoadIcon(NULL,IDI_APPLICATION);  
  wc.hCursor=LoadCursor(NULL,IDC_ARROW);  
  wc.hbrBackground=GetStockObject(WHITE_BRUSH);  
  wc.lpszMenuName=NULL;  
  wc.lpszClassName="SdkDemo1";  
  RegisterClass(&wc);  
  }  
  //创建应用程序主窗口  
  hWnd=CreateWindow("SdkDemo1",//窗口类名  
      "第一个Win32   SDK应用程序",//窗口标题  
      WS_OVERLAPPEDWINDOW,//窗口样式  
      CW_USEDEFAULT,//初始化x坐标  
      CW_USEDEFAULT,  
      CW_USEDEFAULT,  
      CW_USEDEFAULT,  
      NULL,//父窗口句柄  
      NULL,//  
      hInstance,  
      NULL);  
  //显示窗口  
  ShowWindow(hWnd,SW_SHOW);  
  //更新主窗口客户区  
  UpdateWindow(hWnd);  
  //开始消息循环  
  while   (GetMessage(&msg,NULL,0,0))  
  {  
  TranslateMessage(&msg);  
  DispatchMessage(&msg);  
  }  
  return   msg.wParam;  
  }  
  //WndProc   主窗口过程  
  LRESULT   WINAPI   WndProc   (HWND   hWnd,  
  UINT   msg,  
  WPARAM   wParam,  
  LPARAM   lParam)  
  {  
  HDC   hdc;  
  RECT   rc;  
  HPEN   hPen,hPenOld;  
  HBRUSH   hBrush,hBrushOld;  
  switch   (msg)  
  {  
  case   WM_PAINT:  
  hdc=GetDC(hWnd);  
  GetClientRect(hWnd,&rc);  
  hPen=CreatePen(PS_SOLID,0,RGB(0,0,0));  
  hBrush=CreateHatchBrush(HS_DIAGCROSS,RGB(0,0,0));  
  hPenOld=SelectObject(hdc,hPen);  
  hBrushOld=SelectObject(hdc,hBrush);  
  Ellipse(hdc,rc.left,rc.top,rc.right,rc.bottom);  
  SelectObject(hdc,hPenOld);  
  SelectObject(hdc,hBrushOld);  
  ReleaseDC(hWnd,hdc);  
  break;  
  case   WM_DESTROY:  
  PostQuitMessage(0);  
  break;  
  default:  
  break;  
  }  
  return   DefWindowProc(hWnd,msg,wParam,lParam);  
  }  
   
   
  上面是个Win   32   SDK的一个例程,思路能明白,因本人初学,望大侠指点一二。但是编译时出了下面的结果:  
  --------------------Configuration:   SdkDemo1   -   Win32   Debug--------------------  
  Compiling...  
  winmain.cpp  
  C:\Documents   and   Settings\……\桌面\winshell50src\temp\SdkDemo1\winmain.cpp(70)   :   error   C2440:   =   :   cannot   convert   from   void   *   to   struct   HPEN__   *  
                  Conversion   from   void*   to   pointer   to   non-void   requires   an   explicit   cast  
  C:\Documents   and   Settings\……\桌面\winshell50src\temp\SdkDemo1\winmain.cpp(71)   :   error   C2440:   =   :   cannot   convert   from   void   *   to   struct   HBRUSH__   *  
                  Conversion   from   void*   to   pointer   to   non-void   requires   an   explicit   cast  
  Error   executing   cl.exe.  
   
  winmain.obj   -   2   error(s),   0   warning(s)  
 

网友回答:

发表者:Mackz

wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);  
   
  hPenOld=(HPEN)SelectObject(hdc,hPen);  
   
  hBrushOld=(HBRUSH)SelectObject(hdc,hBrush);


 

 
热门推荐笔记本: IBM笔记本
相关文章:
webmaster:popbb@126.com   最佳浏览:1024X768 MSIE
©2007 popbb.net All Rights Reserved