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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? babygrid.cpp

?? 一個(gè)功能強(qiáng)大的代碼編輯器源代碼
?? CPP
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
//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.

/* 
Add WM_MOUSEWHEEL, WM_LBUTTONDBLCLK and WM_RBUTTONUP events
Modified by Don HO <don.h@free.fr>
*/

#include "babygrid.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(iswalpha(tbuffer[j])){ALPHA=TRUE;}
         if(iswdigit(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

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美成人vps| 在线91免费看| 男人的天堂久久精品| 欧美激情一区二区三区全黄 | 久久国产尿小便嘘嘘尿| 国产精品成人在线观看| 7777精品伊人久久久大香线蕉的| 国产高清在线观看免费不卡| 亚洲18影院在线观看| 国产日韩成人精品| 91精品国产91热久久久做人人| 成人高清在线视频| 久久99精品一区二区三区三区| 一区二区三区高清在线| 日本一区二区三区高清不卡| 3atv在线一区二区三区| 色综合夜色一区| 国产精品1区二区.| 日欧美一区二区| 亚洲视频狠狠干| 国产精品欧美久久久久无广告 | 国内精品伊人久久久久av影院| 亚洲已满18点击进入久久| 国产精品久久久久婷婷| 精品欧美乱码久久久久久1区2区| 在线一区二区视频| 成人av在线影院| 国产九色sp调教91| 精品中文字幕一区二区| 青青青伊人色综合久久| 日欧美一区二区| 午夜精品视频一区| 亚洲综合在线电影| 中文字幕一区二区三区在线不卡| 久久美女高清视频| 精品国产乱码久久久久久浪潮| 欧美肥妇毛茸茸| 欧美日韩在线免费视频| 91福利视频网站| 91官网在线观看| 欧美视频中文字幕| 欧美日韩成人高清| 欧美日韩国产影片| 51精品国自产在线| 日韩免费高清av| 欧美电影免费观看完整版| 欧美一区二区三区四区视频| 日韩一区国产二区欧美三区| 日韩精品中文字幕在线一区| 日韩一级二级三级| 精品国免费一区二区三区| 精品久久久久久久久久久院品网 | 欧美曰成人黄网| 欧美日韩激情在线| 欧美一三区三区四区免费在线看| 日韩三级精品电影久久久| 欧美本精品男人aⅴ天堂| 精品国产欧美一区二区| 国产欧美一区二区三区沐欲| 亚洲国产成人在线| 亚洲精品久久7777| 亚洲va国产va欧美va观看| 免费在线看一区| 国产.精品.日韩.另类.中文.在线.播放| 国产精品888| 91丨九色丨国产丨porny| 色婷婷综合久久久中文一区二区 | 日韩av电影免费观看高清完整版 | 亚洲国产三级在线| 美洲天堂一区二卡三卡四卡视频 | 成人在线一区二区三区| 91视频.com| 欧美精品亚洲一区二区在线播放| 欧美一级淫片007| 国产欧美日本一区视频| 亚洲视频一区在线观看| 丝袜a∨在线一区二区三区不卡| 久久成人免费网站| 色94色欧美sute亚洲线路一ni| 欧美精品亚洲二区| 国产三级一区二区三区| 一区二区三区精品| 国产麻豆视频精品| 91国在线观看| 久久综合久久鬼色中文字| 一区在线观看免费| 免费人成在线不卡| 成人性生交大片| 日韩一区二区三区高清免费看看 | 久久久久久黄色| 伊人夜夜躁av伊人久久| 韩国女主播成人在线| 91成人在线免费观看| 久久久午夜精品理论片中文字幕| 一区二区三区欧美久久| 国产精品99久久久久| 欧美久久一二区| 国产精品久久久久久久久快鸭| 亚洲国产精品人人做人人爽| 国产一区二区三区蝌蚪| 欧美亚洲综合一区| 中文字幕不卡在线播放| 日韩经典中文字幕一区| 91在线小视频| 欧美激情在线一区二区| 日本中文字幕不卡| 欧美在线高清视频| 国产精品久久久久久久久图文区 | 91视频观看免费| 久久久国产精华| 奇米四色…亚洲| 欧美唯美清纯偷拍| 亚洲人成网站在线| 高清在线成人网| 欧美精品一区视频| 日本在线不卡一区| 在线观看一区二区精品视频| 国产精品美女久久久久久久| 韩国精品主播一区二区在线观看 | 国产一区二区主播在线| 欧美日韩黄色一区二区| 亚洲精品日日夜夜| av不卡免费电影| 国产日韩欧美不卡在线| 蜜臀av一区二区| 欧美精品乱码久久久久久按摩 | 极品美女销魂一区二区三区免费 | 一区在线观看视频| 国产成a人亚洲精| 久久精品人人爽人人爽| 韩国女主播成人在线| 精品久久五月天| 久久精品理论片| 欧美大片一区二区| 麻豆91在线观看| 日韩色视频在线观看| 青青草一区二区三区| 91精品在线免费观看| 无吗不卡中文字幕| 欧美色区777第一页| 一区二区高清免费观看影视大全 | 亚洲国产日韩a在线播放| 一本大道综合伊人精品热热| 亚洲欧美日韩综合aⅴ视频| 99这里都是精品| 亚洲另类一区二区| 欧美亚洲综合色| 日韩不卡在线观看日韩不卡视频| 在线电影院国产精品| 天天操天天综合网| 日韩视频在线观看一区二区| 蜜臀久久99精品久久久久久9| 欧美一区二区在线观看| 精彩视频一区二区三区| 欧美国产综合色视频| av激情综合网| 亚洲成人一二三| 欧美一区日本一区韩国一区| 精品一区二区三区在线播放视频 | 国产白丝精品91爽爽久久| 国产精品久久久久久久久免费丝袜 | 国产精品欧美一级免费| www.亚洲精品| 亚洲成人福利片| 欧美亚洲精品一区| 美女在线一区二区| 国产午夜精品福利| 91一区二区三区在线观看| 亚洲综合在线视频| 日韩精品一区二区三区在线| 狠狠色2019综合网| 日韩美女久久久| 欧美一区二区三区小说| 国产精品一区一区| 一片黄亚洲嫩模| 精品电影一区二区三区 | 91精品免费在线观看| 黑人精品欧美一区二区蜜桃| 中文字幕亚洲不卡| 在线播放国产精品二区一二区四区 | 91福利精品视频| 日韩av一区二区在线影视| 久久影院午夜论| 欧美三片在线视频观看 | 99这里都是精品| 日韩电影在线看| 欧美激情艳妇裸体舞| 欧美日韩一级黄| 国产suv精品一区二区三区| 亚洲男人的天堂在线aⅴ视频| 4438成人网| 色婷婷久久久久swag精品 | 青青草成人在线观看| 亚洲国产高清在线观看视频| 欧美日韩综合一区| 成人综合在线视频| 乱一区二区av| 亚洲va欧美va天堂v国产综合| 亚洲国产精品激情在线观看| 91麻豆精品国产91久久久资源速度 |