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

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

?? editform2.~cpp

?? 《C++Builder程序設計范例--中國象棋》配書盤自述文件
?? ~CPP
字號:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "EditForm2.h"
#include "MainForm1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TEditForm *EditForm;
//---------------------------------------------------------------------------
__fastcall TEditForm::TEditForm(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
/*
在EditForm還沒有顯示之前進行一些操作,就需要重載Loaded()函數。
具體做法是:
首先,調用基類的Loaded()函數,以保證基類的動作被繼承。然后,
設置Form的一些屬性,SetBounds()設置窗體的邊框大小。
*/
void __fastcall TEditForm::Loaded()
{
  TForm::Loaded();
  Visible = false;
  Position = poDefault;
  BorderIcons = TBorderIcons();
  BorderStyle = bsNone;
  Ctl3D =false;
  Color=clMenu;
  HandleNeeded();

   int X = MainForm->Width/2;
   int Y = 0;
   int H = MainForm->Height;
   int W = MainForm->Width/2;

  SetBounds(X,Y,W,H);
}
//---------------------------------------------------------------------------
/*
當VCL要構造元件的窗口類時,就會調用CreateParams()函數。
CreateParams()函數聲明如下:
   virtual void __fastcall CreateParams(TCreateParams& Params);
   唯一的參數是一個 TCreateParams結構。TCreateParams聲明如下:
struct TCreateParams
{
  char *Caption;
  int Style;
  int ExStyle;
  int X;
  int Y;
  int Width;
  int Height;
  HWND WndParent;
  void *Param;
  tagWNDCLASSA WindowClass();
  char WinClassName[64];
};
 大多數情況下需要重載CreateParams()函數,以便改變元件的窗口風格。
 具體做法是:
 首先,調用基類的CreateParams()函數,以便繼承默認的行為。然后,
 在原有的窗口風格基礎上加上WS_CHILD | WS_CLIPSIBLINGS。
*/
void __fastcall TEditForm::CreateParams(TCreateParams& Params)
{
  TForm::CreateParams(Params);
  TForm* owner = dynamic_cast<TForm*>(Owner);
  Params.WndParent = owner->Handle;
  Params.Style = WS_CHILD | WS_CLIPSIBLINGS;
  Params.X = 0;
  Params.Y = 0;

   EditBarRect.right = (SQUARE_SIZE*2) + 6;
   EditBarRect.bottom = (SQUARE_SIZE * 7) + 6;
   EditBarRect.left = EditBarRect.top = 0;

   EditRect.right = MainForm->ClientWidth/2;
   EditRect.bottom = MainForm->ClientHeight;
   EditRect.left = EditRect.top = 0;

  SelectedItem = 0;

}
//---------------------------------------------------------------------------
/*
設置編輯窗體背景
采用文件方式載入位圖。
對于位圖沒有保存在資源文件(.res)內,C++ Builder不能把從文件裝入的位圖
連接入最后的可執行文件。因此,必須確保在c:\BcbChess下有必需的位圖文件。
 很明顯,使用VCL函數比原始的API函數要方便得多。
 使用后,應將Canvas->Brush->Bitmap這個特性設為NULL,以釋放位圖。
 如果不刪除位圖,將導致程序內存不足。
*/
 void TEditForm::SetEditWindowBk()
   {
      Graphics::TBitmap *BLKBrushBmp = new Graphics::TBitmap();
      BLKBrushBmp->LoadFromFile("e:\\BKBrush.bmp");
      //BLKBrushBmp->LoadFromFile("c:\\BcbChess\\BKBrush.bmp");
      EditForm->Canvas->Brush->Bitmap=BLKBrushBmp;
      EditForm->Canvas->FillRect(EditForm->GetClientRect());
      EditForm->Canvas->Brush->Bitmap=NULL;
       delete BLKBrushBmp;
   }

//---------------------------------------------------------------------------
/*
編輯窗體重畫函數
包括對位圖進行正常或反相顯示,編輯窗體背景用位圖填充。
注意,由于位圖采用文件方式載入,不能鏈接入可執行文件中,
請確保c:\BcbChess下有需要的位圖文件。
*/
void __fastcall TEditForm::FormPaint(TObject *Sender)
{
   int i;
   BITMAP Bitmap;
   HBITMAP hBitmap, hOldBmp, hMaskBmp;
    SetEditWindowBk();

   HDC hDC= GetDC(EditForm->Handle);
   DrawFrame(hDC, EditBarRect, true);
   ReleaseDC(EditForm->Handle, hDC);
   hDC = GetDC(EditForm->Handle);
    DrawFrame(hDC, EditRect);
    ReleaseDC(EditForm->Handle, hDC);
   hDC= GetDC(EditForm->Handle);
   HDC hMemoryDC = CreateCompatibleDC(hDC);
   GetObject(PieceBmpArray[0][red], sizeof(BITMAP), (LPSTR)&Bitmap);

   for (i = 0; i < 7; i++)
      {
      hBitmap = PieceBmpArray[i][red];
      hMaskBmp = MaskArray[i];
      hOldBmp = (HBITMAP)SelectObject(hMemoryDC, hMaskBmp);

      BitBlt(hDC, 3, 3 + (SQUARE_SIZE * i), Bitmap.bmWidth, Bitmap.bmHeight,
         hMemoryDC, 0, 0, SRCAND);
      SelectObject(hMemoryDC, hBitmap);

      BitBlt(hDC, 3, 3 + (SQUARE_SIZE * i), Bitmap.bmWidth, Bitmap.bmHeight,
         hMemoryDC, 0, 0, (SelectedItem == i)
         ? NOTSRCERASE : SRCINVERT);
      SelectObject(hMemoryDC, hOldBmp);
      }

   for (i = 0; i < 7; i++)
      {
      hBitmap = PieceBmpArray[i][black];
      hMaskBmp = MaskArray[i];
      hOldBmp = (HBITMAP)SelectObject(hMemoryDC, hMaskBmp);      

      BitBlt(hDC, 3 + SQUARE_SIZE, 3 + (SQUARE_SIZE * i), Bitmap.bmWidth, Bitmap.bmHeight,
         hMemoryDC, 0, 0, SRCAND);
      SelectObject(hMemoryDC, hBitmap);
      BitBlt(hDC, 3+SQUARE_SIZE, 3 + (SQUARE_SIZE * i), Bitmap.bmWidth, Bitmap.bmHeight,
         hMemoryDC, 0, 0, (SelectedItem == (i + 7))
	 ? NOTSRCERASE : SRCINVERT);
      SelectObject(hMemoryDC, hOldBmp);
      }
   DeleteDC(hMemoryDC);
   ReleaseDC(EditForm->Handle, hDC);
      
}
//---------------------------------------------------------------------------
/*
編輯窗體中的左鼠標按下事件處理函數
按下時位圖將反相顯示
*/
void __fastcall TEditForm::FormMouseUp(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
  POINT point;
   int i, j, temp;
   RECT Rect;
   BITMAP Bitmap;
   HBITMAP hBitmap, hOldBmp, hMaskBmp;
   if (Button != mbLeft)
      return;
   HDC hDC = GetDC(EditForm->Handle);
   HDC hMemoryDC = CreateCompatibleDC(hDC);

   int PreviousItem = SelectedItem;

   point = Point(X,Y);
   EditForm->ScreenToClient(point);

   for (i = 0; i < 7; i++)
      for (j = 0; j < 2; j++)
         {
            Rect.left = (j * SQUARE_SIZE) + 3;
            Rect.right = Rect.left + SQUARE_SIZE;
            Rect.top = (i * SQUARE_SIZE) + 3;
            Rect.bottom = Rect.top + SQUARE_SIZE;
            if (PtInRect(&Rect,point))
	       SelectedItem = (i + ((j) ? 7 : 0));
         }
   if (SelectedItem == PreviousItem)
      return;


   GetObject(PieceBmpArray[0][red], sizeof(BITMAP), (LPSTR)&Bitmap);

   temp = PreviousItem % 7;

   hBitmap = PieceBmpArray[temp][(PreviousItem < 7) ? red : black];
   hMaskBmp = MaskArray[temp];
   hOldBmp = (HBITMAP)SelectObject(hMemoryDC, hMaskBmp);
   BitBlt(hDC, (PreviousItem < 7) ? 3 : 3 + SQUARE_SIZE,
      3 + (SQUARE_SIZE * temp), Bitmap.bmWidth, Bitmap.bmHeight,
      hMemoryDC, 0, 0, SRCERASE);
   SelectObject(hMemoryDC, hBitmap);      
   BitBlt(hDC, (PreviousItem < 7) ? 3 : 3 + SQUARE_SIZE,
      3 + (SQUARE_SIZE * temp), Bitmap.bmWidth, Bitmap.bmHeight,
      hMemoryDC, 0, 0, SRCINVERT);
   SelectObject(hMemoryDC, hOldBmp);

   temp = SelectedItem % 7;

   hBitmap = PieceBmpArray[temp][(SelectedItem < 7) ? red : black];
   hMaskBmp = MaskArray[temp];
   hOldBmp = (HBITMAP)SelectObject(hMemoryDC, hMaskBmp);
   BitBlt(hDC, (SelectedItem < 7) ? 3 : 3 + SQUARE_SIZE,
      3 + (SQUARE_SIZE * temp), Bitmap.bmWidth, Bitmap.bmHeight,
      hMemoryDC, 0, 0, SRCAND);
   SelectObject(hMemoryDC, hBitmap);
   BitBlt(hDC, (SelectedItem < 7) ? 3 : 3 + SQUARE_SIZE,
      3 + (SQUARE_SIZE * temp), Bitmap.bmWidth, Bitmap.bmHeight,
      hMemoryDC, 0, 0, NOTSRCERASE);
   SelectObject(hMemoryDC, hOldBmp);
   DeleteDC(hMemoryDC);
   ReleaseDC(EditForm->Handle, hDC);
       
}
//---------------------------------------------------------------------------

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区四区激情| 成人性生交大片免费看在线播放| 国产偷国产偷精品高清尤物 | 91欧美激情一区二区三区成人| 精品中文av资源站在线观看| 青青国产91久久久久久| 天堂精品中文字幕在线| 日本不卡不码高清免费观看| 热久久久久久久| 国内一区二区视频| 国产成人免费视频精品含羞草妖精| 国产精品99久久久久久似苏梦涵| 国产黄色91视频| 色先锋资源久久综合| 在线视频中文字幕一区二区| 欧美日韩一区精品| 欧美成人猛片aaaaaaa| 久久久不卡网国产精品二区| 亚洲国产精品精华液ab| 一区二区三区四区五区视频在线观看| 亚洲午夜一区二区| 午夜免费久久看| 国产在线不卡一区| 成人福利电影精品一区二区在线观看| 色婷婷久久久综合中文字幕| 欧美久久免费观看| 国产日韩欧美一区二区三区乱码 | 91麻豆产精品久久久久久| 91福利国产精品| 欧美一区二区在线视频| 国产丝袜欧美中文另类| 一区二区三区av电影| 麻豆一区二区三区| 春色校园综合激情亚洲| 欧美日韩综合不卡| 国产视频一区二区在线| 亚洲免费在线播放| 精品一区二区三区在线观看| 99久久久精品| 精品国一区二区三区| 亚洲欧美国产毛片在线| 精品一区二区三区久久| 91国模大尺度私拍在线视频 | 国产在线精品一区二区不卡了| 成人午夜精品一区二区三区| 欧美精品一卡二卡| 国产精品毛片大码女人| 免费在线视频一区| 在线看不卡av| 欧美激情综合网| 七七婷婷婷婷精品国产| 91老师国产黑色丝袜在线| 久久综合视频网| 首页国产欧美日韩丝袜| 91免费视频大全| 久久新电视剧免费观看| 日av在线不卡| 欧美日韩中字一区| 亚洲男人的天堂在线观看| 国产精品一卡二卡在线观看| 欧美高清激情brazzers| 亚洲免费av高清| 97久久精品人人做人人爽50路| 精品国内二区三区| 国产主播一区二区| 精品久久久久香蕉网| 三级欧美在线一区| 欧美福利视频导航| 亚洲一二三级电影| 日本韩国欧美三级| 亚洲欧美一区二区三区国产精品| 国产成人av一区二区| 国产亚洲精品精华液| 国产一区二区调教| 久久精品男人天堂av| 精品一区二区三区视频在线观看| 日韩一卡二卡三卡四卡| 久久精品二区亚洲w码| 91精品国产色综合久久| 蜜桃av一区二区三区| 日韩欧美资源站| 国内不卡的二区三区中文字幕| 日韩欧美专区在线| 国产精品一区二区果冻传媒| 国产视频一区二区三区在线观看| 粉嫩在线一区二区三区视频| 欧美激情一区在线| 91在线观看污| 亚洲国产一二三| 91精品国产福利在线观看| 全国精品久久少妇| 国产亚洲人成网站| 99久久精品情趣| 亚洲成人手机在线| 欧美成人欧美edvon| 成人黄页在线观看| 亚洲超碰精品一区二区| 日韩一区二区电影在线| 成人一级黄色片| 亚洲男女毛片无遮挡| 制服丝袜中文字幕亚洲| 国产成人在线色| 亚洲影院在线观看| 日韩限制级电影在线观看| 国产一区二区三区免费| 亚洲欧美经典视频| 日韩欧美www| 91日韩一区二区三区| 三级亚洲高清视频| 亚洲天堂成人网| 日韩欧美中文字幕精品| www.欧美色图| 蜜臀久久99精品久久久久久9| 精品久久久网站| 在线观看亚洲a| 国产不卡视频在线观看| 亚洲人被黑人高潮完整版| 精品av综合导航| 91国偷自产一区二区三区观看| 国产伦精品一区二区三区免费 | 亚洲综合丝袜美腿| 久久人人97超碰com| 欧美亚洲一区二区三区四区| 精品一区二区日韩| 亚洲第一电影网| 国产精品乱码人人做人人爱| 91精品国产综合久久久久久久久久 | 91视频一区二区三区| 麻豆精品精品国产自在97香蕉| 亚洲日本在线观看| 久久久久久99久久久精品网站| 欧美丝袜第三区| 99久久精品免费观看| 国产精品亚洲第一| 久久99精品视频| 香港成人在线视频| 亚洲精品美国一| 国产精品久久久久影院亚瑟| 欧美精品一区二区精品网| 欧美精品日日鲁夜夜添| 91久久精品日日躁夜夜躁欧美| 国产999精品久久久久久| 狠狠色综合播放一区二区| 日韩和欧美一区二区三区| 亚洲综合999| 一区二区国产盗摄色噜噜| 亚洲天堂免费在线观看视频| 亚洲欧洲三级电影| 国产精品美女久久福利网站| 国产欧美日韩久久| 久久久国产一区二区三区四区小说 | 欧美一三区三区四区免费在线看| 欧美性大战久久| 欧美日韩一级片在线观看| 在线区一区二视频| 在线观看日韩毛片| 欧美日韩黄视频| 欧美精品第1页| 日韩欧美一区二区久久婷婷| 日韩一区二区三区视频在线 | 一区二区三区久久| 亚洲午夜av在线| 调教+趴+乳夹+国产+精品| 日韩在线a电影| 狠狠色狠狠色综合系列| 国产一区二区伦理片| 高清beeg欧美| 91免费国产在线观看| 91丨porny丨在线| 欧美专区亚洲专区| 日韩欧美中文字幕公布| 精品va天堂亚洲国产| 中文字幕中文字幕中文字幕亚洲无线| 日韩一区日韩二区| 亚洲国产精品一区二区尤物区| 日日夜夜精品视频免费| 国产综合色在线视频区| 99精品在线免费| 欧美一区二区精品久久911| 26uuu欧美| 亚洲精品欧美激情| 蜜臀av性久久久久蜜臀av麻豆| 国产激情一区二区三区四区 | 欧美丝袜丝交足nylons图片| 日韩欧美一区二区视频| 亚洲欧洲韩国日本视频| 日韩二区在线观看| 成人小视频在线观看| 欧美日韩国产成人在线免费| 欧美xxxxxxxxx| 亚洲精品视频免费观看| 精品中文字幕一区二区| 日本道色综合久久| 久久综合久久综合九色| 亚洲黄网站在线观看| 国产精品综合二区| 在线综合+亚洲+欧美中文字幕| 国产精品欧美综合在线| 六月丁香婷婷色狠狠久久| 一本久久综合亚洲鲁鲁五月天|