亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? babygrid.cpp

?? babygred
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
//BABYGRID code is copyrighted (C) 20002 by David Hillard
//
//This code must retain this copyright message
//
//Printed BABYGRID message reference and tutorial available.
//email: mudcat@mis.net for more information.



#include "babygrid.h"
#include "resource.h"


#define MAX_GRIDS 20

#define MAX_ROWS 32000
#define MAX_COLS 256




//global variables



HFONT hfontbody,hfontheader,hfonttitle;

HFONT holdfont;

struct _gridhandlestruct 
	{
        UINT gridmenu;
		HWND hlist1;
		char protect[2];
        char title[305];
        char editstring[305];
        char editstringdisplay[305];
		int rows;
		int cols;
		int gridwidth;
		int gridheight;
		int homerow;
		int homecol;
		int rowheight;
		int leftvisiblecol;
		int rightvisiblecol;
		int topvisiblerow;
		int bottomvisiblerow;
		int headerrowheight;
		int cursorrow;
		int cursorcol;
        int ownerdrawitem;
        int visiblecolumns;
        int titleheight;
        int fontascentheight;
		COLORREF cursorcolor;
		COLORREF protectcolor;
		COLORREF unprotectcolor;
		COLORREF textcolor;
		COLORREF highlightcolor;
		COLORREF gridlinecolor;
        COLORREF highlighttextcolor;
		BOOL DRAWHIGHLIGHT;
        BOOL ADVANCEROW;
        BOOL CURRENTCELLPROTECTED;
		BOOL GRIDHASFOCUS;
        BOOL AUTOROW;
        RECT activecellrect;
        HFONT hfont;
        HFONT hcolumnheadingfont;
        HFONT htitlefont;
		BOOL ROWSNUMBERED;
		BOOL COLUMNSNUMBERED;
        BOOL EDITABLE;
        BOOL EDITING;
        BOOL EXTENDLASTCOLUMN;
        BOOL HSCROLL;
        BOOL VSCROLL;
        BOOL SHOWINTEGRALROWS;
        BOOL SIZING;
        BOOL ELLIPSIS;
        BOOL COLAUTOWIDTH;
        BOOL COLUMNSIZING;
        BOOL ALLOWCOLUMNRESIZING;
        int columntoresize;
        int columntoresizeinitsize;
        int columntoresizeinitx;
        int cursortype;
		int columnwidths[MAX_COLS+1];
        BOOL REMEMBERINTEGRALROWS;
        int wannabeheight;
        int wannabewidth;

    } BGHS[MAX_GRIDS];


_BGCELL BGcell,*LPBGcell;

int BG_GridIndex;
int FindResult;
char data[1000];







CREATESTRUCT cs,*lpcs;


int         AddGrid(UINT);
int         FindGrid(UINT);
void		ShowVscroll(HWND,int);
void		ShowHscroll(HWND,int);
int         BinarySearchListBox(HWND,char*);
void        DisplayEditString(HWND ,int ,char*);
int         CountGrids(void);




////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
int HomeColumnNthVisible(int SI)
    {  
     int j,hc,count;
     count=0;
     hc=BGHS[SI].homecol;
     for(j=1;j<=hc;j++)
         {
          if(BGHS[SI].columnwidths[j]>0)
              {
               count++;
              }
         }
     return count;
    }


void RefreshGrid(HWND hWnd)
	{
	 RECT rect;
     int SI;
	 GetClientRect(hWnd,&rect);
	 InvalidateRect(hWnd,&rect,FALSE);
     SI=FindGrid((UINT)GetMenu(hWnd));
     if(BGHS[SI].EDITING)
         {
          DisplayEditString(hWnd,SI,"");
         }

	}

int GetNextColWithWidth(int SI, int startcol, int direction)
    {
     //calls with direction == 1 for right, direction == -1 for left
     //returns 0 if no more cols in that direction, else column number
     int j;
     int ReturnValue;
     j=startcol;
     if(direction == 1){j++;}
     if(direction != 1){j--;}

     while((BGHS[SI].columnwidths[j] == 0)&&(j<=BGHS[SI].cols)&&(j>0))
         {
         if(direction == 1){j++;}
         if(direction != 1){j--;}
         }
     if((BGHS[SI].columnwidths[j] > 0)&&(j<=BGHS[SI].cols))
         {
          ReturnValue = j;
         }
     else
         {
          ReturnValue = 0;
         }
     return ReturnValue;
    }


int GetRowOfMouse(int SI,int y)
	{
	 int ReturnValue;
	 if(y<=(BGHS[SI].titleheight))
		 {
		  return -1;
		 }
	 if((y>=BGHS[SI].titleheight)&&(y<=BGHS[SI].headerrowheight + BGHS[SI].titleheight))
		 {
		  return 0;
		 }


	 y=y-(BGHS[SI].headerrowheight + BGHS[SI].titleheight);
	 y=y/BGHS[SI].rowheight;
	 ReturnValue = BGHS[SI].homerow + y;
	 if(ReturnValue > BGHS[SI].rows){ReturnValue = -1;}
	 return ReturnValue;
	}


int GetColOfMouse(int SI,int x)
	{
	 int ReturnValue;
	 int j;
	 if(x<=BGHS[SI].columnwidths[0])
		 {
		  return 0;
		 }

	 x-=BGHS[SI].columnwidths[0];

	 j=BGHS[SI].homecol;
	 while(x>0)
		 {
		  x-=BGHS[SI].columnwidths[j];
		  j++;
		 }
	 j--;
	 
	 ReturnValue = j;
     if(BGHS[SI].EXTENDLASTCOLUMN)
         {
	      if(j>BGHS[SI].cols){ReturnValue = BGHS[SI].cols;}
         }
     else
         {
          if(j>BGHS[SI].cols){ReturnValue = -1;}
         }
	 return ReturnValue;
	}

BOOL OutOfRange(_BGCELL *cell)
    {
      if((cell->row > MAX_ROWS)||(cell->col > MAX_COLS))
          {return TRUE;}
      else
          {return FALSE;}
    }

void SetCell(_BGCELL *cell,int row, int col)
	{
	 cell->row = row;
	 cell->col = col;
	}

int DetermineDataType(char* data)
    {
     //return values:
     //       1 = Text or Alpha
     //       2 = Numeric
     //       3 = Boolean TRUE
     //       4 = Boolean FALSE
	 //       5 = Graphic - user drawn (cell text begins with ~)
     int j,k,numberofperiods,numberofpositives,numberofnegatives;
     char tbuffer[1000];
     BOOL DIGIT,ALPHA,PERIOD,WHITESPACE,SYMBOL,POSITIVE,NEGATIVE;
     strcpy(tbuffer,data);
     k=strlen(tbuffer);
     strupr(tbuffer);
     //is it boolean?
     if(!strcmp(tbuffer,"TRUE"))
         {
          return 3; 
         }
     if(!strcmp(tbuffer,"FALSE"))
         {
          return 4;
         }
	 //is it graphic (~)
	 if(tbuffer[0]=='~')
		 {
		  return 5;
		 }
     DIGIT=FALSE;
     ALPHA=FALSE;
     PERIOD=FALSE;
     WHITESPACE=FALSE;
	 SYMBOL=FALSE;
	 POSITIVE=FALSE;
	 NEGATIVE=FALSE;

     numberofperiods=0;
	 numberofpositives=0;
	 numberofnegatives=0;
     for(j=0;j<k;j++)
         {
         if(isalpha(tbuffer[j])){ALPHA=TRUE;}
         if(isdigit(tbuffer[j])){DIGIT=TRUE;}
         if(iswspace(tbuffer[j])){WHITESPACE=TRUE;}
         if(tbuffer[j]=='.'){PERIOD=TRUE;numberofperiods++;}
		 if(tbuffer[j]=='+'){if(j>0){ALPHA=TRUE;}}
		 if(tbuffer[j]=='-'){if(j>0){ALPHA=TRUE;}}
         }
     if((ALPHA)||(WHITESPACE))
         {
          return 1;
         }
     if((DIGIT)&&(!ALPHA)&&(!WHITESPACE))
         {
          if(numberofperiods>1)
              {
               return 1;
              }
          else
              {
               return 2;
              }
         }
     return 1;
    }


void CalcVisibleCellBoundaries(int SelfIndex)
{
 int gridx,gridy;
 int j;
 gridx=BGHS[SelfIndex].gridwidth;
 gridy=BGHS[SelfIndex].gridheight;



 j=	BGHS[SelfIndex].homecol;
 BGHS[SelfIndex].leftvisiblecol = BGHS[SelfIndex].homecol;
 BGHS[SelfIndex].topvisiblerow = BGHS[SelfIndex].homerow;
 //calc columns visible
 //first subtract the width of col 0;
 gridx = gridx - BGHS[SelfIndex].columnwidths[0];
 do
 {
  gridx = gridx - BGHS[SelfIndex].columnwidths[j];
  j++;
 }while ((gridx >= 0)&&(j<BGHS[SelfIndex].cols));

 if(j>BGHS[SelfIndex].cols){j=BGHS[SelfIndex].cols;}
 BGHS[SelfIndex].rightvisiblecol = j;




 //calc rows visible;
 gridy = gridy - BGHS[SelfIndex].headerrowheight;
 j=	BGHS[SelfIndex].homerow;
 do
 {
  gridy = gridy - BGHS[SelfIndex].rowheight;
  j++;
 }while ((gridy > 0)&&(j<BGHS[SelfIndex].rows));

 if(j>BGHS[SelfIndex].rows){j=BGHS[SelfIndex].rows;}
 BGHS[SelfIndex].bottomvisiblerow = j;
}


RECT GetCellRect(HWND hWnd,int SI, int r, int c)
	{
	 RECT rect;
	 int offset;
	 int j;
	 //c and r must be greater than zero

	 //get column offset
	   //first get col 0 width
	   offset=BGHS[SI].columnwidths[0];
	   for(j=BGHS[SI].homecol;j<c;j++)
		   {
			offset += BGHS[SI].columnwidths[j];
		   }
	   rect.left = offset;
	   rect.right = offset + BGHS[SI].columnwidths[c];

    if(BGHS[SI].EXTENDLASTCOLUMN)
        {
	        //see if this is the last column
	        if(!GetNextColWithWidth(SI,c,1))
		        {
		         //extend this column
		         RECT trect;
		         int temp;
		         GetClientRect(hWnd,&trect);
		         temp = (offset +(trect.right - rect.left))-rect.left;
		         if(temp > BGHS[SI].columnwidths[c])
			         {
		              rect.right = offset + (trect.right - rect.left);
			         }
		        }
        }

	   //now get the top and bottom of the rect
	   offset = BGHS[SI].headerrowheight+BGHS[SI].titleheight;
	   for(j=BGHS[SI].homerow;j<r;j++)
		   {
			offset += BGHS[SI].rowheight;
		   }
	   rect.top = offset;
	   rect.bottom = offset + BGHS[SI].rowheight;
	   return rect;
	}


void DisplayTitle(HWND hWnd,int SI,HFONT hfont)
    {
     RECT rect;
     HDC gdc;
     HFONT holdfont;

     GetClientRect(hWnd,&rect);
     


     gdc=GetDC(hWnd);
     SetBkMode(gdc,TRANSPARENT);
     holdfont=(HFONT)SelectObject(gdc,hfont);
     rect.bottom = BGHS[SI].titleheight;
	 DrawEdge(gdc,&rect,EDGE_ETCHED,BF_MIDDLE|BF_RECT|BF_ADJUST);
	 DrawTextEx(gdc,BGHS[SI].title,-1,&rect,DT_END_ELLIPSIS|DT_CENTER|DT_WORDBREAK|DT_NOPREFIX,NULL);
     SelectObject(gdc,holdfont);
     ReleaseDC(hWnd,gdc);
    }


void DisplayColumn(HWND hWnd,int SI,int c,int offset,HFONT hfont,HFONT hcolumnheadingfont)
{
	HDC gdc;
	RECT rect,rectsave;
    HFONT holdfont;
	int r;
	char buffer[1000];
	int iDataType,iProtection;
	if(BGHS[SI].columnwidths[c]==0){return;}

	 gdc=GetDC(hWnd);
	 SetBkMode(gdc,TRANSPARENT);
     ShowHscroll(hWnd,SI);
	 ShowVscroll(hWnd,SI);
     

    holdfont = (HFONT)SelectObject(gdc,hcolumnheadingfont);
	SetTextColor(gdc,BGHS[SI].textcolor);
	//display header row
	r=0;



	rect.left = offset + 0;
	rect.top = BGHS[SI].titleheight;//0
	rect.right = BGHS[SI].columnwidths[c] + offset;
	rect.bottom = BGHS[SI].headerrowheight + BGHS[SI].titleheight;

    if(BGHS[SI].EXTENDLASTCOLUMN)
        {
	        //see if this is the last column
	        if(!GetNextColWithWidth(SI,c,1))
		        {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品va在线观看| 国产精品福利一区| 麻豆精品新av中文字幕| 欧美精品 国产精品| 午夜精品影院在线观看| 在线电影一区二区三区| 秋霞电影一区二区| 91精品国产综合久久福利| 捆绑调教美女网站视频一区| 久久毛片高清国产| 波波电影院一区二区三区| 亚洲精品老司机| 欧美精品一级二级| 国产毛片一区二区| 亚洲欧美一区二区久久| 欧美日韩不卡一区二区| 精品一区二区三区在线视频| 久久久久成人黄色影片| 色综合中文字幕| 午夜av电影一区| 国产亚洲精品资源在线26u| 91麻豆免费看片| 天堂蜜桃一区二区三区| 国产色产综合色产在线视频| 91在线视频免费91| 日韩成人一级大片| 国产精品视频线看| 欧美日本一道本在线视频| 国产成人免费高清| 亚洲二区视频在线| 日本一区二区三区高清不卡| 欧美日韩美女一区二区| 国产99久久精品| 婷婷久久综合九色国产成人| 日本一区二区三区电影| 在线播放国产精品二区一二区四区| 国内精品视频666| 亚洲国产sm捆绑调教视频 | 91尤物视频在线观看| 亚洲成人免费av| 国产精品久久久久aaaa樱花| 欧美一级黄色片| 91香蕉视频在线| 精品亚洲国内自在自线福利| 亚洲一区二区视频在线观看| 欧美激情一区二区三区蜜桃视频 | 亚洲一区二区三区视频在线播放| 日韩午夜在线播放| 色综合久久六月婷婷中文字幕| 老司机午夜精品| 亚洲综合免费观看高清完整版在线 | 亚洲免费观看高清完整版在线 | 五月天网站亚洲| 欧美经典一区二区三区| 91精品国产综合久久香蕉麻豆| 91麻豆国产福利在线观看| 国产精品一区二区果冻传媒| 午夜精品久久久久久久| 国产精品二三区| 国产亚洲精品7777| 精品国产乱码久久| 日韩视频在线观看一区二区| 欧美天天综合网| 色综合网色综合| 成人精品视频一区二区三区| 极品少妇一区二区| 奇米精品一区二区三区四区| 亚洲综合一二区| 亚洲精品乱码久久久久久日本蜜臀| 国产精品蜜臀av| 欧美国产国产综合| 久久综合色综合88| 2023国产精品视频| 久久综合色之久久综合| 欧美大白屁股肥臀xxxxxx| 5858s免费视频成人| 欧美精品一级二级| 3d动漫精品啪啪一区二区竹菊| 欧美亚洲一区二区在线观看| 91久久精品一区二区三区| 91视频精品在这里| 91在线无精精品入口| 91福利在线导航| 欧美视频在线不卡| 欧美日韩一级大片网址| 欧美日韩精品一区二区三区 | 99re视频精品| 欧美性xxxxx极品少妇| 欧美性做爰猛烈叫床潮| 欧美日韩高清影院| 欧美大片日本大片免费观看| 久久久www成人免费毛片麻豆| 国产喂奶挤奶一区二区三区| 国产免费成人在线视频| 亚洲三级在线免费| 亚洲第一成年网| 精品一区二区综合| 成人av午夜影院| 欧美羞羞免费网站| 欧美videossexotv100| 国产精品天干天干在观线| 亚洲欧美日韩一区二区| 亚洲午夜久久久久中文字幕久| 午夜精品福利一区二区三区蜜桃| 美女在线一区二区| 高清在线不卡av| 欧美综合久久久| 精品美女被调教视频大全网站| 懂色av一区二区三区免费观看| 不卡一区二区三区四区| 色播五月激情综合网| 欧美日本在线观看| 99久久精品免费看| 欧美欧美午夜aⅴ在线观看| 久久综合久久综合亚洲| 亚洲三级电影全部在线观看高清| 五月婷婷色综合| 国产激情视频一区二区三区欧美 | 欧美日韩三级一区二区| 欧美一二三在线| 中文字幕一区二区三区精华液 | 精品裸体舞一区二区三区| 亚洲国产高清在线观看视频| 亚洲在线中文字幕| 精品一区二区三区蜜桃| 色婷婷综合在线| 337p粉嫩大胆色噜噜噜噜亚洲| 一区二区三区欧美日| 精品一区二区三区在线观看| 日本精品一区二区三区四区的功能| 欧美一级午夜免费电影| 亚洲欧美日韩综合aⅴ视频| 久久精品理论片| 欧美亚洲自拍偷拍| 国产精品嫩草影院com| 美腿丝袜亚洲一区| 欧美中文字幕久久| 中文字幕在线不卡| 国模娜娜一区二区三区| 欧美性猛交xxxx黑人交| 中文字幕一区二区三区乱码在线 | 麻豆精品在线播放| 在线视频一区二区免费| 国产日韩三级在线| 蜜臀av性久久久久蜜臀av麻豆| 91一区二区三区在线观看| 精品国产乱码久久| 另类小说视频一区二区| 日本久久电影网| 亚洲视频免费看| 成人免费毛片高清视频| 久久久久久久久岛国免费| 青青青爽久久午夜综合久久午夜| 一本色道久久综合亚洲aⅴ蜜桃 | 精品国产成人在线影院| 五月天亚洲婷婷| 在线成人av网站| 日韩高清一区在线| 欧美日本视频在线| 爽爽淫人综合网网站| 欧美午夜精品免费| 亚洲综合在线第一页| 日本久久一区二区| 一区二区三区电影在线播| 色综合久久久网| 亚洲一区在线观看视频| 欧美色偷偷大香| 亚洲成av人片观看| 欧美日韩夫妻久久| 青青草97国产精品免费观看无弹窗版| 欧美日韩国产综合一区二区 | 亚洲乱码国产乱码精品精的特点 | 99久久精品免费精品国产| 国产精品久久久久久久久快鸭 | 在线国产电影不卡| 一区二区三区在线视频免费观看| 91亚洲精华国产精华精华液| 成人欧美一区二区三区白人| 99久久综合国产精品| 国产91精品一区二区麻豆亚洲| 国产精品综合久久| 91精品综合久久久久久| 亚洲成人高清在线| 欧美另类变人与禽xxxxx| 日韩一区欧美二区| 亚洲国产毛片aaaaa无费看| 欧美亚洲日本国产| 日本va欧美va精品| 久久天堂av综合合色蜜桃网| 国产成人精品免费网站| 日韩一区欧美小说| 欧美日韩视频在线第一区| 麻豆极品一区二区三区| 久久久国产午夜精品| 99久久久久久| 日韩精品每日更新| 2021久久国产精品不只是精品| 成人av资源下载| 亚洲宅男天堂在线观看无病毒| 欧美一区二区不卡视频|