常用句柄类型及其说明

  句柄类型 说明   
  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);  

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值