常用句柄类型及其说明

句柄类型 说明  
  HWND  窗口句柄  
  HINSTANCE  当前实列句柄  
  HCURSOR  光标句柄  
  HFONT  字体句柄  
  HPEN  画笔句柄  
  HBRUSH  画刷句柄  
  HDC  设备环境句柄  
  HBITMAP  位图句柄  
  HICON  图标句柄  
  HMENU  菜单句柄  
  HFILE  文件句柄   

  系统定义消息宏前缀  
  BM_  按钮控制消息  
  CB_  组合框  
  DM_  压式按钮  
  EM_  编辑框  
  LB_  列表框  
  SBM_  滚动条  
  WM_  窗口  
  不同消息类型取直范围  
  系统定义1 0x0000--0x03FF  
  用户定义内部消息 0x0400--0x07FF  
  系统定义2 0x0800--0xBFFF  
  用户定义外部消息 0xC000--0xFFFF  
  常用的部分  Windows  数据类型  
  WORD 16位无符号整数  
  LONG 32位有符号整数  
  DWORD 32位无符号整数  
  HANDLE 句柄  
  UINT 32位无符号整数  
  BOOL  布尔  
  LPTSTR  指向字符串的32位指针  
  LPCTSTR  指向字符串常量的32位指针  
  数据结构  
  typedef   struct   tagMSG  
  {  
    HWND hwnd; 检索窗口句柄  
  UNIT message; 消息直  
  WPARAM wParam; 参数  
  LPARAM lParam; 参数  
  DWORD time; 消息送至队列的时间  
  POINT pt; 消息发送时光标位置  
    }  
  typedef   struct   tagPOINT  
  {  
    LONG   x,y;  
  }   POINT;  
  typedef   struct   tagWNDCLASS  
  {  
    UINT       style;  
  WINDPROC lpfnWndProc;  
  Int cbClsExtra;  
  Int cbWndExtra;  
  HINSTANCE hInstance;  
  HICON hIcon;  
  HCURSOR hCursor  
  HBRUSH hbrBackground;  
  LPCTSTR lpszMenuName;  
  LPCTSTR lpszClassName;  
      }WNDCLASS;  
  typedef   struct   tagRECT  
  {  
  LONG left;  
  LONG top;  
  LONG right;  
  LONG bottom;  
      }RECT;  
  位图应用  
  HDC hdc; 设备环境句柄      
  HDC hdcmem; 内存设备环境句柄  
  HBITMAP hBm; 位图句柄  
  BITMAP   bm; BITMAP  结构  
  hdc=GetDC(hwnd);  
  hdcmem=CreateCompatibleDC(hdc); 先获得内存设备环境  
  hBm=LoadBitmap  加载位图  
  (  
  hInstanc,  当前应用程序实列句柄  
  lpszName  位图名称  
  );  
  hBm=CreateCompatibleBitmap(hdc,nWidth,nHeight,)   或者是创建位图  
  SelectObject(hcdmem,hBm); 送入内存  
  在输出位图之前获得位图尺寸  
  int   GetObject  
  (  
    HANDLE   hObject, 对象句柄  
    int   nCount, 考贝到缓冲区的字节数  
    LPVOID   lpObject  接收信息的缓冲地址  
  )  
  int   GetObject  
  (  
      hBm,  
      sizeof(BITMAP),  
      (LPVIOD)&bm  
  )  
  写入信息到位图结构中  
  typedef   struct   tagBITMAP  
  {  
      LONG       bmType;       位图类型  
      LONG           bmWidth;                 位图宽度  
      LONG           bmHeight;               位图高度  
      LONG           bmWidthBytes;       每一光栅行的字节数  
      WORD           bmPlanes;               位图中位面的数目    
      WORD           bmBitsPixel;         位图中每个象素的位数  
      LPVIOD       bmBits;                   位图位直的地址  
    };BITMAP  
  输出位图  
  BOOL   BitBlt  
  (  
      HDC   hdcDest, 目的设备环境句柄  
      int   Xdext,int   Ydest  目的设备显示位图的基本点  
      int   Width,   int   nHeitght, 目的设备显示区域的高和宽  
      HDc   hdcscr  元设备句柄  
      int   xScr,int   yscr, 元设备位图的左上角点  
      DWORD   dwrop  位图的显示方式  
  )  
  位图的显示方式   dwrop  
  BLACKNESS  输出全黑色  
  DSTINVERT  目标执行取反操作  
  MERGECOPY  将原图与模板执行与  
  MERGEPAINT ................或  
  NOTSRCCOPY  在拷贝之前将原图执行取反  
  NOTSTCERASE  原和目的执行或,再执行取反  
  PATCOPY  将模版拷贝到目标位置  
  PAINTVERT  将模板和目标位图执行异或  
  SRCCOPY  将原拷贝到目标位图  
  SRCAND  将原和目标执行与  
  SRCPAINT ..............或  
  SRCERASE  目标先取反再和原执行与  
  SRCINVERT  将原和目标执行异或  
  WHITENESS  输出全白  
  窗口  
  BOOL   EnableWindow(HWND   hwnd,Bool   bEnable);  
  BOOL   MoveWindow(HWND   hwnd,int   x,int   y,int   nWidth,int   nHeight,BOOL   bReprint)  
  bool   SetWinodwText(HWND   hwnd,   LPCTSTR   lpszString);  
  int     GetWindowText(HWND   hwnd,   LPSTR   lpszString,   int   nMax)  
  设备环境  
  HDC   hdc=GetDC(hwnd);  
  void   ReleaseDC(hdc);  
  PAINTSTRUCT   ps;  
  HDC   hdc=BeginPaint(hwnd,&ps)  
  typedef   struct   tagPAINTSTRUCT  
  {  
    HDC   hdc;  
    BOOL   fErase; 擦除无效矩形背景  
    RECT   rcPaint 无效矩形标识  
    BOOL   fRestore; 系统保留  
    BOOL   fIncUpdate; 系统保留  
    BYTE   rgbReserved[16] 系统保留  
    }PAINTSTRUCT:    
  void   EndPaint(HWND   hwnd,   PAINTSTRUCT   &ps);  
  映象模式  
  MM_TEXT  一个象素 Y 向下   X 向右  
  MM_HIENGLISH 0.001英寸 Y 向上   X 向右  
  MM_HIMETRIC 0.01毫米 Y 向上   X 向右  
  MM_ISOTROPIC 系统确定 可选   X:Y=1:1  
  MM_LOENGLISH 0.01英寸 Y向上   X向右  
  MM_LOMETRIC 0.1毫米 Y 向上   X 向右  
  MM_ANISOTROPIC 系统确定 可选  
  MM_TWIPS 1/1440英寸 Y 向上   X 向右  
  int   nMapMode=GetMapMode(hdc);  
  SetMapMode(hdc,nMapMode);  

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ssrs626/archive/2008/09/27/2986680.aspx

转载于:https://www.cnblogs.com/wanghao111/archive/2009/09/18/1568967.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值