常用句柄类型及其说明

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值