⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 windefs.h

📁 MinGUI 可视化程序代码
💻 H
字号:
//---------------------------------------------------------------------------
#ifndef _WINDEFS_H
#define _WINDEFS_H
//---------------------------------------------------------------------------
#include "wingal.h"
//---------------------------------------------------------------------------
typedef int                BOOL;
typedef char               bool;
typedef unsigned int       UINT;
typedef unsigned char      BYTE;
typedef unsigned short     WORD;
typedef unsigned long      DWORD;
typedef UINT               WPARAM;
typedef long               LPARAM;
typedef long               HRESULT;
typedef const char        *LPCSTR, *PCSTR;
typedef char              *LPSTR, *PSTR;
typedef UINT64             TWndDateTime;
typedef void              *HANDLE;
typedef HANDLE             HDC;
typedef HANDLE             HWND;
typedef DWORD              TCOLOR;
//---------------------------------------------------------------------------
#define CALLBACK
#define WINAPI
//---------------------------------------------------------------------------
#ifndef NULL
 #define NULL     ((void *)0) 
#endif
//---------------------------------------------------------------------------
#ifndef false
  #define false               0
#endif
//---------------------------------------------------------------------------
#ifndef true
  #define true                1
#endif
//---------------------------------------------------------------------------
#ifndef FALSE
  #define FALSE               0
#endif
//---------------------------------------------------------------------------
#ifndef TRUE
  #define TRUE                1
#endif
//---------------------------------------------------------------------------
#ifndef max
  #define max(a,b)            (((a) > (b)) ? (a) : (b))
#endif
//---------------------------------------------------------------------------
#ifndef min
  #define min(a,b)            (((a) < (b)) ? (a) : (b))
#endif
//---------------------------------------------------------------------------
#ifndef swap
#define swap(a,b)            {a^=b;b^=a;a^=b;}
#endif
//---------------------------------------------------------------------------
#ifndef MAKEWORD
  #define MAKEWORD(a, b)      ((WORD)(((BYTE)(a)) | ((WORD)((BYTE)(b))) << 8))
#endif
//---------------------------------------------------------------------------
#ifndef MAKELONG
  #define MAKELONG(a, b)      ((long)(((WORD)(a)) | ((DWORD)((WORD)(b))) << 16))
#endif
//---------------------------------------------------------------------------
#ifndef LOWORD
  #define LOWORD(L)           ((WORD)(L))
#endif
//---------------------------------------------------------------------------
#ifndef HIWORD
  #define HIWORD(L)           ((WORD)((DWORD)(L)>>16))
#endif
//---------------------------------------------------------------------------
#ifndef LOBYTE
  #define LOBYTE(w)           ((BYTE)(w))
#endif
//---------------------------------------------------------------------------
#ifndef HIBYTE
  #define HIBYTE(w)           ((BYTE)((w)>>8))
#endif
//---------------------------------------------------------------------------
typedef struct     
{ /*a、r、g、b地址由高至低,与像素值中RGB分量的排列顺序一致*/  
  unsigned char b; /*the red component of a RGB color*/
  unsigned char g; /*the red component of a RGB color*/
  unsigned char r; /*the red component of a RGB color*/
  unsigned char a; /*the alpha component of a RGB color*/
}RGBQUAD; 
//---------------------------------------------------------------------------
#if BITS_PER_PIXEL <= 8
  typedef	unsigned char   PIXEL;		 /* 像素存储单位BYTE */
#elif BITS_PER_PIXEL <= 16
  typedef	unsigned short	PIXEL;	     /* 像素存储单位WORD */
#elif BITS_PER_PIXEL <= 32
  typedef	unsigned long	PIXEL;		 /* 像素存储单位DWORD*/
#endif
////////////////////////////////////////////////////////////////////////////////
#if(BITS_PER_PIXEL==1)                  // black and white LCD
////////////////////////////////////////////////////////////////////////////////////
 #define UNIT_PIXEL_MASK        0x01    // (1<<BITS_PER_PIXEL)-1
 #define PIXEL_UNIT             8       // 像素单位的比特数8/16/32  (2的整数次方) ==(BITS_PER_PIXEL+7) / 8 * 8
 #define UNIT_BYTE              1       // PIXEL_UNIT/8
 #define PIXELS_PER_UNIT        8       // PIXEL_UNIT/BITS_PER_PIXEL
 #define LOG_PIXEL_BITS	        0       // log2(BITS_PER_PIXEL)
 #define LOG_UNIT      	        3       // log2(PIXEL_UNIT)
 #define LOG_UNIT_BYTE	        0       // log2(UNIT_BYTE)
 #define LOG_PIXEL_NUM	        3       // log2(PIXELS_PER_UNIT)
 #define INDEX_RED_BITWIDTH     0       //INDEX_RED_BITWIDTH+INDEX_GREEN_BITWIDTH+INDEX_BLUE_BITWIDTH==BITS_PER_PIXEL
 #define INDEX_GREEN_BITWIDTH   0
 #define INDEX_BLUE_BITWIDTH    1
////////////////////////////////////////////////////////////////////////////////////
#elif(BITS_PER_PIXEL==2)                // 4gray
////////////////////////////////////////////////////////////////////////////////////
 #define UNIT_PIXEL_MASK        0x03    // (1<<BITS_PER_PIXEL)-1
 #define PIXEL_UNIT     	    8	    // 像素单位的比特数8/16/32
 #define UNIT_BYTE              1	    // PIXEL_UNIT/8
 #define PIXELS_PER_UNIT	    4	    // PIXEL_UNIT/BITS_PER_PIXEL
 #define LOG_PIXEL_BITS	        1	    // log2(BITS_PER_PIXEL)
 #define LOG_UNIT      	        3	    // log2(PIXEL_UNIT)
 #define LOG_UNIT_BYTE	        0	    // log2(UNIT_BYTE)
 #define LOG_PIXEL_NUM	        2	    // log2(PIXELS_PER_UNIT)
 #define INDEX_RED_BITWIDTH     0       //INDEX_RED_BITWIDTH+INDEX_GREEN_BITWIDTH+INDEX_BLUE_BITWIDTH==BITS_PER_PIXEL
 #define INDEX_GREEN_BITWIDTH   1
 #define INDEX_BLUE_BITWIDTH    1
////////////////////////////////////////////////////////////////////////////////////
#elif(BITS_PER_PIXEL==4)                // 16gray
////////////////////////////////////////////////////////////////////////////////////
 #define UNIT_PIXEL_MASK        0x0F    // (1<<BITS_PER_PIXEL)-1
 #define PIXEL_UNIT     	    8	    // 像素单位的比特数8/16/32
 #define UNIT_BYTE              1	    // PIXEL_UNIT/8
 #define PIXELS_PER_UNIT    	2	    // PIXEL_UNIT/BITS_PER_PIXEL
 #define LOG_PIXEL_BITS	        2	    // log2(BITS_PER_PIXEL)
 #define LOG_UNIT      	        3	    // log2(PIXEL_UNIT)
 #define LOG_UNIT_BYTE	        0	    // log2(UNIT_BYTE)
 #define LOG_PIXEL_NUM	        1	    // log2(PIXELS_PER_UNIT)
 #define INDEX_RED_BITWIDTH     1       //INDEX_RED_BITWIDTH+INDEX_GREEN_BITWIDTH+INDEX_BLUE_BITWIDTH==BITS_PER_PIXEL
 #define INDEX_GREEN_BITWIDTH   2
 #define INDEX_BLUE_BITWIDTH    1
////////////////////////////////////////////////////////////////////////////////////
#elif(BITS_PER_PIXEL==8)                // 256色 332默认调色板
////////////////////////////////////////////////////////////////////////////////////
 #define UNIT_PIXEL_MASK        0xFF    // (1<<BITS_PER_PIXEL)-1
 #define PIXEL_UNIT         	8	    // 像素单位的比特数8/16/32
 #define PIXEL_BYTE             1       // BITS_PER_PIXEL/8
 #define UNIT_BYTE              1	    // PIXEL_UNIT/8
 #define INDEX_RED_BITWIDTH     3       //INDEX_RED_BITWIDTH+INDEX_GREEN_BITWIDTH+INDEX_BLUE_BITWIDTH==BITS_PER_PIXEL
 #define INDEX_GREEN_BITWIDTH   3
 #define INDEX_BLUE_BITWIDTH    2
 ////////////////////////////////////////////////////////////////////////////////////
#elif(BITS_PER_PIXEL==16)               // 16位色   565默认调色板 
////////////////////////////////////////////////////////////////////////////////////
 #define UNIT_PIXEL_MASK       0xFFFF   // (1<<BITS_PER_PIXEL)-1
 #define PIXEL_UNIT	           16       // 像素存储单位的比特数 8/16/32
 #define PIXEL_BYTE            2        // BITS_PER_PIXEL/8
 #define UNIT_BYTE	           2	    // PIXEL_UNIT/8
 #define INDEX_RED_BITWIDTH    5        //INDEX_RED_BITWIDTH+INDEX_GREEN_BITWIDTH+INDEX_BLUE_BITWIDTH==BITS_PER_PIXEL
 #define INDEX_GREEN_BITWIDTH  6
 #define INDEX_BLUE_BITWIDTH   5
////////////////////////////////////////////////////////////////////////////////////
#elif(BITS_PER_PIXEL==24) 
////////////////////////////////////////////////////////////////////////////////////
 #define UNIT_PIXEL_MASK       0x00FFFFFF   // (1<<BITS_PER_PIXEL)-1
 #define PIXEL_UNIT	           32       // 像素存储单位的比特数 8/16/32
 #define PIXEL_BYTE            3        // BITS_PER_PIXEL/8
 #define UNIT_BYTE	           4	    // PIXEL_UNIT/8
 #define INDEX_RED_BITWIDTH    8       
 #define INDEX_GREEN_BITWIDTH  8
 #define INDEX_BLUE_BITWIDTH   8
////////////////////////////////////////////////////////////////////////////////////
#elif( BITS_PER_PIXEL==32) 
////////////////////////////////////////////////////////////////////////////////////
 #define UNIT_PIXEL_MASK       0xFFFFFFFF   // (1<<BITS_PER_PIXEL)-1
 #define PIXEL_UNIT	           32       // 像素存储单位的比特数 8/16/32
 #define PIXEL_BYTE            4        // BITS_PER_PIXEL/8
 #define UNIT_BYTE	           4	    // PIXEL_UNIT/8
 #define INDEX_RED_BITWIDTH    8       
 #define INDEX_GREEN_BITWIDTH  8
 #define INDEX_BLUE_BITWIDTH   8
////////////////////////////////////////////////////////////////////////////////////
#endif
//---------------------------------------------------------------------------
#if(BITS_PER_PIXEL==16 && INDEX_RED_BITWIDTH==5 && INDEX_GREEN_BITWIDTH==5 && INDEX_BLUE_BITWIDTH==5)
  #define SYS_EFFECT_BPP           15
#else
  #define SYS_EFFECT_BPP            BITS_PER_PIXEL
#endif
//---------------------------------------------------------------------------
#define BITS_MASK(bitwidth)   ((1L<<(bitwidth))-1)
//---------------------------------------------------------------------------
#if (PIXEL_BIG_ENDIAN==true)
   #define MASK_OFFSET_OPT(bitwidth,bitoffset)         ( ((1<<(bitwidth))-1) << ( PIXEL_UNIT - (bitoffset) - (bitwidth) ) )
   #define PIXEL_OFFSET_OPT(value,bitwidth,bitoffset)  value <<= ( PIXEL_UNIT - (bitoffset) - (bitwidth) )
   #define OPT_OFFSET_PIXEL(value,bitwidth,bitoffset)  ( value << ( PIXEL_UNIT - (bitoffset) - (bitwidth) ) )
   #define PATTERN_SHIFT_LFFT(pattern,bitoffset)       ( (pattern)<<(bitoffset) )
   #define PATTERN_SHIFT_RIGHT(pattern,bitoffset)      ( (pattern)>>(bitoffset) )
   #define UNIT_GET_BITS(unitwidth,value,bitwidth,bitoffset)   ( ((value)>>((unitwidth)-(bitwidth)-(bitoffset)))& BITS_MASK(bitwidth) )
#else
   #define MASK_OFFSET_OPT(bitwidth,bitoffset)         ( ((1<<(bitwidth))-1) << (bitoffset) )
   #define PIXEL_OFFSET_OPT(value,bitwidth,bitoffset)  value <<= (bitoffset)
   #define OPT_OFFSET_PIXEL(value,bitwidth,bitoffset)  ( value << (bitoffset) )
   #define PATTERN_SHIFT_LFFT(pattern,bitoffset)       ( (pattern)>>(bitoffset) )
   #define PATTERN_SHIFT_RIGHT(pattern,bitoffset)      ( (pattern)<<(bitoffset) )
   #define UNIT_GET_BITS(unitwidth,value,bitwidth,bitoffset)    ( ((value)>>(bitoffset))&BITS_MASK(bitwidth) )
#endif
//---------------------------------------------------------------------------
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -