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

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

?? babygrid.cpp

?? 文字編輯器源碼 Text editor source code
?? 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.

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

#include "babygrid.h"
#include "Common.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;
		TCHAR protect[2];
        TCHAR title[305];
        TCHAR editstring[305];
        TCHAR 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;
TCHAR data[1000];







CREATESTRUCT cs,*lpcs;


int         AddGrid(UINT);
int         FindGrid(UINT);
void		ShowVscroll(HWND,int);
void		ShowHscroll(HWND,int);
int         BinarySearchListBox(HWND,TCHAR*);
void        DisplayEditString(HWND ,int ,TCHAR*);
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, TEXT(""));
         }

	}

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(TCHAR* 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;
     TCHAR tbuffer[1000];
     BOOL DIGIT,ALPHA,PERIOD,WHITESPACE,SYMBOL,POSITIVE,NEGATIVE;
     lstrcpy(tbuffer,data);
     k=lstrlen(tbuffer);
     strupr(tbuffer);
     //is it boolean?
     if(!lstrcmp(tbuffer,"TRUE"))
         {
          return 3; 
         }
     if(!lstrcmp(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;
	TCHAR 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;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品每日更新| 日本一二三不卡| 精品久久一区二区三区| 日韩精品资源二区在线| 日韩精品专区在线影院重磅| 久久久久久久久岛国免费| 国产婷婷一区二区| 亚洲激情五月婷婷| 日本一区中文字幕| 国产不卡在线播放| 欧美久久高跟鞋激| 中文字幕免费不卡| 九九国产精品视频| 一本久久a久久精品亚洲| 日韩一区二区电影| 中文字幕日本乱码精品影院| 免费在线观看日韩欧美| 成人av免费在线| 久久人人97超碰com| 视频一区中文字幕| www.欧美.com| 欧美另类z0zxhd电影| 中文字幕乱码久久午夜不卡| 日本va欧美va精品发布| 在线中文字幕不卡| 国产欧美精品区一区二区三区| 日韩欧美一区中文| 国产精品视频第一区| 91蜜桃免费观看视频| 一本在线高清不卡dvd| 国产欧美一区二区三区鸳鸯浴| 国产sm精品调教视频网站| 亚洲女同ⅹxx女同tv| 4438亚洲最大| 国产精品系列在线播放| 亚洲欧美日韩综合aⅴ视频| 欧美精品一卡二卡| 国产乱人伦偷精品视频不卡| 亚洲欧洲一区二区三区| caoporn国产精品| 一区二区三区免费看视频| 欧美高清hd18日本| 国产原创一区二区三区| 久久久亚洲午夜电影| 成人v精品蜜桃久久一区| 亚洲自拍偷拍网站| 欧美一区二区精品| 国产成人日日夜夜| 夜夜精品浪潮av一区二区三区| 在线观看免费亚洲| 美女高潮久久久| 日韩一区在线免费观看| 欧美日韩五月天| 国产河南妇女毛片精品久久久| 国产精品久久久久精k8| 欧美日韩一区 二区 三区 久久精品| 免费不卡在线观看| 自拍偷拍亚洲激情| 欧美xxxx在线观看| 不卡在线观看av| 久久精品国产亚洲aⅴ| 亚洲一区二区在线免费观看视频 | 日本女优在线视频一区二区 | 91丨九色丨黑人外教| 热久久一区二区| 亚洲综合一区二区| 欧美极品少妇xxxxⅹ高跟鞋| 欧美高清精品3d| 91黄色免费版| 91在线精品秘密一区二区| 久久99精品久久久久久国产越南| 亚洲综合偷拍欧美一区色| 亚洲精品在线电影| 久久伊人蜜桃av一区二区| 91精品国产综合久久精品性色| 91免费看`日韩一区二区| 国产福利一区二区三区视频在线 | 日韩精品一区二区三区视频 | 韩国精品主播一区二区在线观看 | 国产一区在线观看麻豆| 麻豆91精品视频| 精品一区二区三区的国产在线播放 | 亚洲一区二区三区四区的| 午夜激情久久久| 久久福利资源站| 大陆成人av片| 欧美亚洲一区三区| 亚洲精品成a人| 国产一区免费电影| 成人激情av网| 欧美日本免费一区二区三区| 欧美一二三区在线观看| 欧美群妇大交群的观看方式| 亚洲国产成人va在线观看天堂| 亚洲欧美国产高清| 国产精品自拍一区| 欧美巨大另类极品videosbest | 国产精品77777竹菊影视小说| 欧美午夜精品久久久| 自拍偷拍国产亚洲| 成人免费三级在线| 国产三级精品在线| 国产伦精品一区二区三区视频青涩| 欧美裸体一区二区三区| 夜夜嗨av一区二区三区中文字幕 | 亚洲午夜免费视频| 日韩欧美国产一区二区三区| 欧美一区二区三区视频在线观看 | 久久91精品久久久久久秒播| 日本午夜一区二区| 国产伦精品一区二区三区视频青涩 | 日韩一区二区精品| 久久综合九色综合97_久久久 | 中文字幕不卡在线| 一区二区三区日韩欧美精品| 免费成人在线视频观看| jlzzjlzz欧美大全| 制服.丝袜.亚洲.另类.中文| 国产精品视频yy9299一区| 五月天激情综合网| 粉嫩在线一区二区三区视频| 欧美日韩夫妻久久| 国产欧美日产一区| 人人爽香蕉精品| 91视频精品在这里| 精品国产伦一区二区三区观看方式| 一区二区三区欧美| 懂色av噜噜一区二区三区av| 67194成人在线观看| 国产精品无码永久免费888| 天堂久久一区二区三区| 播五月开心婷婷综合| 精品人伦一区二区色婷婷| 亚洲一区在线电影| 成人黄色av电影| 精品国产成人在线影院| 偷拍一区二区三区| 色婷婷精品久久二区二区蜜臀av | 97超碰欧美中文字幕| 日韩一区二区精品在线观看| 亚洲精品成a人| 波多野结衣亚洲| 久久精品一区二区三区不卡| 日本成人在线一区| 欧美日韩一区二区三区视频| 亚洲同性同志一二三专区| 成人少妇影院yyyy| 国产视频一区二区在线观看| 久久精品二区亚洲w码| 911精品国产一区二区在线| 亚洲精品免费电影| 91首页免费视频| 国产精品电影院| 国产一区二区免费在线| 精品噜噜噜噜久久久久久久久试看| 亚洲国产你懂的| 色偷偷88欧美精品久久久| 国产精品初高中害羞小美女文| 国产成人综合在线播放| 久久男人中文字幕资源站| 国内精品伊人久久久久av一坑| 欧美大片免费久久精品三p| 免费人成在线不卡| 日韩一区二区视频在线观看| 丝袜诱惑亚洲看片| 制服丝袜成人动漫| 美女视频黄 久久| 欧美成人乱码一区二区三区| 久久国产精品99久久久久久老狼| 日韩免费福利电影在线观看| 激情丁香综合五月| 久久精品一二三| k8久久久一区二区三区| 国产精品国产三级国产普通话99| www.66久久| 一区二区三区波多野结衣在线观看| 91成人在线精品| 日日夜夜精品免费视频| 91精品欧美福利在线观看| 美女看a上一区| 久久亚洲精精品中文字幕早川悠里| 国产xxx精品视频大全| 国产精品久久二区二区| 91免费在线播放| 亚洲18女电影在线观看| 欧美一卡2卡三卡4卡5免费| 激情偷乱视频一区二区三区| 国产精品久久久久婷婷| 一本大道久久a久久精品综合| 亚洲一区二区三区在线看| 日韩三级在线免费观看| 国产精品2024| 亚洲一区二区三区四区五区中文| 91精品国产免费| 懂色av中文一区二区三区| 日韩毛片精品高清免费| 777久久久精品| 国产成人av在线影院| 夜夜夜精品看看| 精品国产乱码久久久久久闺蜜|