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

📄 20010322003.htm

📁 C++Builder教学大全
💻 HTM
📖 第 1 页 / 共 4 页
字号:
      Owner);<BR><BR>};<BR><BR> <BR><BR>2.3.4.3 程序文件main.cpp<BR><BR>#include 

      &lt;vcl.h&gt;<BR><BR>#pragma hdrstop<BR><BR> <BR><BR>#include 

      "main.h"<BR><BR>//---------------------------------------------------------------------------<BR><BR>#pragma 

      package(smart_init)<BR><BR>#pragma resource "*.dfm"<BR><BR>TForm1 

      *Form1;<BR><BR>//---------------------------------------------------------------------------<BR><BR>__fastcall 

      TForm1::TForm1(TComponent* Owner)<BR><BR>: 

      TForm(Owner)<BR><BR>{<BR><BR>}<BR><BR>//---------------------------------------------------------------------------<BR><BR>void 

      __fastcall TForm1::Button1Click(TObject 

      *Sender)<BR><BR>{<BR><BR>if(!FAILED(DirectDrawCreate(NULL,&amp;lpDD,NULL)))<BR><BR>{<BR><BR>if(!FAILED(lpDD-&gt;QueryInterface(IID_IDirectDraw2,(LPVOID 

      *)&amp;lpDD2)))<BR><BR>{<BR><BR>lpDD-&gt;Release();<BR><BR>if(!FAILED(lpDD2-&gt;SetCooperativeLevel(Handle,<BR><BR>DDSCL_EXCLUSIVE|DDSCL_FULLSCREEN|DDSCL_NOWINDOWCHANGES)))<BR><BR>{<BR><BR>if(!FAILED(lpDD2-&gt;SetDisplayMode(800,600,16,0,0)))<BR><BR>{<BR><BR>Memo1-&gt;Lines-&gt;Text=Memo1-&gt;Lines-&gt;Text+"Create 

      DirectDraw Object 

      OK."+(String)CR;<BR><BR>Button1-&gt;Enabled=false;<BR><BR>Button2-&gt;Enabled=true;<BR><BR>return;<BR><BR>}<BR><BR>}<BR><BR>}<BR><BR>}<BR><BR>Memo1-&gt;Lines-&gt;Text=Memo1-&gt;Lines-&gt;Text+"Create 

      DirectDraw Object 

      Failed."+(String)CR;<BR><BR>}<BR><BR>//---------------------------------------------------------------------------<BR><BR>void 

      __fastcall TForm1::Button2Click(TObject 

      *Sender)<BR><BR>{<BR><BR>ZeroMemory(&amp;ddsd,sizeof(ddsd));<BR><BR>ddsd.dwSize=sizeof(ddsd);<BR><BR>ddsd.dwFlags=DDSD_CAPS;<BR><BR>ddsd.ddsCaps.dwCaps=DDSCAPS_PRIMARYSURFACE;<BR><BR>if(FAILED(lpDD2-&gt;CreateSurface(&amp;ddsd,&amp;lpDDPrimary,NULL)))<BR><BR>Memo1-&gt;Lines-&gt;Text=Memo1-&gt;Lines-&gt;Text+"Create 

      Priamry Surface 

      Failed."+(String)CR;<BR><BR>else<BR><BR>{<BR><BR>Memo1-&gt;Lines-&gt;Text=Memo1-&gt;Lines-&gt;Text+"Create 

      Priamry Surface 

      OK."+(String)CR;<BR><BR>Button2-&gt;Enabled=false;<BR><BR>Button3-&gt;Enabled=true;<BR><BR>}<BR><BR>}<BR><BR>//---------------------------------------------------------------------------<BR><BR> <BR><BR>void 

      __fastcall TForm1::FormClose(TObject *Sender, TCloseAction 

      &amp;Action)<BR><BR>{<BR><BR>lpDD2-&gt;Release();<BR><BR>}<BR><BR>//---------------------------------------------------------------------------<BR><BR> <BR><BR>void 

      __fastcall TForm1::Button3Click(TObject 

      *Sender)<BR><BR>{<BR><BR>ZeroMemory(&amp;ddsd,sizeof(ddsd));<BR><BR>ddsd.dwSize=sizeof(ddsd);<BR><BR>ddsd.dwFlags=DDSD_CAPS|DDSD_HEIGHT|DDSD_WIDTH;<BR><BR>ddsd.dwHeight=100;<BR><BR>ddsd.dwWidth=100;<BR><BR>ddsd.ddsCaps.dwCaps=DDSCAPS_OFFSCREENPLAIN;<BR><BR>if(FAILED(lpDD2-&gt;CreateSurface(&amp;ddsd,&amp;lpDDOffScreen,NULL)))<BR><BR>Memo1-&gt;Lines-&gt;Text=Memo1-&gt;Lines-&gt;Text+"Create 

      OffScreen Surface 

      Failed."+(String)CR;<BR><BR>else<BR><BR>{<BR><BR>Memo1-&gt;Lines-&gt;Text=Memo1-&gt;Lines-&gt;Text+"Create 

      OffScreen Surface 

      OK."+(String)CR;<BR><BR>Button3-&gt;Enabled=false;<BR><BR>Button4-&gt;Enabled=true;<BR><BR>}<BR><BR>}<BR><BR>//---------------------------------------------------------------------------<BR><BR> <BR><BR>void 

      __fastcall TForm1::Button4Click(TObject *Sender)<BR><BR>{<BR><BR>HDC 

      hdc,hdcImage;<BR><BR>HBITMAP 

      hbm;<BR><BR>hbm=(HBITMAP)LoadImage(NULL,"view.bmp",IMAGE_BITMAP,100,100,LR_LOADFROMFILE|LR_CREATEDIBSECTION);<BR><BR>hdcImage=CreateCompatibleDC(NULL);<BR><BR>SelectObject(hdcImage,hbm);<BR><BR>if(FAILED(lpDDOffScreen-&gt;GetDC(&amp;hdc)))<BR><BR>Memo1-&gt;Lines-&gt;Text=Memo1-&gt;Lines-&gt;Text+"Get 

      DC of OffScreen Screen Surface 

      Failed."+(String)CR;<BR><BR>else<BR><BR>{<BR><BR>Memo1-&gt;Lines-&gt;Text=Memo1-&gt;Lines-&gt;Text+"Get 

      DC of OffScreen Screen Surface 

      OK."+(String)CR;<BR><BR>if(BitBlt(hdc,0,0,100,100,hdcImage,0,0,SRCCOPY)==FALSE)<BR><BR>Memo1-&gt;Lines-&gt;Text=Memo1-&gt;Lines-&gt;Text+"OffScreen 

      Screen BitBlt 

      Failed."+(String)CR;<BR><BR>else<BR><BR>{<BR><BR>Memo1-&gt;Lines-&gt;Text=Memo1-&gt;Lines-&gt;Text+"OffScreen 

      Screen BitBlt 

      OK."+(String)CR;<BR><BR>Button4-&gt;Enabled=false;<BR><BR>Button5-&gt;Enabled=true;<BR><BR>}<BR><BR>lpDDOffScreen-&gt;ReleaseDC(hdc);<BR><BR>}<BR><BR>if(hdcImage) 

      DeleteDC(hdcImage);<BR><BR>if(hbm) 

      DeleteObject(hbm);<BR><BR>}<BR><BR>//---------------------------------------------------------------------------<BR><BR> <BR><BR>void 

      __fastcall TForm1::Button5Click(TObject *Sender)<BR><BR>{<BR><BR>HDC 

      hdc,hdcImage;<BR><BR>HBITMAP 

      hbm;<BR><BR>hbm=(HBITMAP)LoadImage(NULL,"view.bmp",IMAGE_BITMAP,200,100,LR_LOADFROMFILE|LR_CREATEDIBSECTION);<BR><BR>hdcImage=CreateCompatibleDC(NULL);<BR><BR>SelectObject(hdcImage,hbm);<BR><BR>if(FAILED(lpDDPrimary-&gt;GetDC(&amp;hdc)))<BR><BR>Memo1-&gt;Lines-&gt;Text=Memo1-&gt;Lines-&gt;Text+"Get 

      DC of Primary Screen Surface 

      Failed."+(String)CR;<BR><BR>else<BR><BR>{<BR><BR>Memo1-&gt;Lines-&gt;Text=Memo1-&gt;Lines-&gt;Text+"Get 

      DC of Primary Screen Surface 

      OK."+(String)CR;<BR><BR>if(BitBlt(hdc,0,0,200,100,hdcImage,0,0,SRCCOPY)==FALSE)<BR><BR>Memo1-&gt;Lines-&gt;Text=<BR><BR>Memo1-&gt;Lines-&gt;Text+"Primary 

      Screen BitBlt 

      Failed."+(String)CR;<BR><BR>else<BR><BR>{<BR><BR>Memo1-&gt;Lines-&gt;Text=Memo1-&gt;Lines-&gt;Text+"Primary 

      Screen BitBlt 

      OK."+(String)CR;<BR><BR>Button5-&gt;Enabled=false;<BR><BR>Button6-&gt;Enabled=true;<BR><BR>}<BR><BR>lpDDPrimary-&gt;ReleaseDC(hdc);<BR><BR>}<BR>if(hdcImage) 

      DeleteDC(hdcImage);<BR><BR>if(hbm) 

      DeleteObject(hbm);<BR><BR>}<BR><BR>//---------------------------------------------------------------------------<BR><BR> <BR><BR>void 

      __fastcall TForm1::Button6Click(TObject *Sender)<BR><BR>{<BR><BR>HDC 

      hdcPrimary,hdcOffScreen;<BR><BR>lpDDPrimary-&gt;GetDC(&amp;hdcPrimary);<BR><BR>lpDDOffScreen-&gt;GetDC(&amp;hdcOffScreen);<BR><BR>BitBlt(hdcPrimary,200,0,100,100,hdcOffScreen,0,0,SRCCOPY);<BR><BR>lpDDPrimary-&gt;ReleaseDC(hdcPrimary);<BR><BR>lpDDOffScreen-&gt;ReleaseDC(hdcOffScreen);<BR><BR>Memo1-&gt;Lines-&gt;Text=Memo1-&gt;Lines-&gt;Text+"OffScreen 

      To Primary 

      OK."+(String)CR;<BR><BR>Button6-&gt;Enabled=false;<BR><BR>Button7-&gt;Enabled=true;<BR><BR>}<BR><BR>//---------------------------------------------------------------------------<BR><BR> <BR><BR>void 

      __fastcall TForm1::Button7Click(TObject 

      *Sender)<BR><BR>{<BR><BR>lpDD2-&gt;SetDisplayMode(640,480,16,0,0);<BR><BR>if(lpDDPrimary-&gt;IsLost()==DDERR_SURFACELOST&amp;&amp;lpDDOffScreen-&gt;IsLost()==DDERR_SURFACELOST)<BR><BR>Memo1-&gt;Lines-&gt;Text=Memo1-&gt;Lines-&gt;Text+"Surfaces 

      are 

      Lost."+(String)CR;<BR><BR>else<BR><BR>Memo1-&gt;Lines-&gt;Text=Memo1-&gt;Lines-&gt;Text+"Surfaces 

      remain."+(String)CR;<BR><BR>Button7-&gt;Enabled=false;<BR><BR>Button8-&gt;Enabled=true;<BR><BR> <BR><BR>}<BR><BR>//---------------------------------------------------------------------------<BR><BR> <BR><BR>void 

      __fastcall TForm1::Button8Click(TObject 

      *Sender)<BR><BR>{<BR><BR>lpDD2-&gt;SetDisplayMode(800,600,16,0,0);<BR><BR>lpDDPrimary-&gt;Restore();<BR><BR>lpDDOffScreen-&gt;Restore();<BR><BR>Memo1-&gt;Lines-&gt;Text=Memo1-&gt;Lines-&gt;Text+"Restore 

      lost Surfaces 

      OK."+(String)CR;<BR><BR>Button8-&gt;Enabled=false;<BR><BR>Button9-&gt;Enabled=true;<BR><BR>}<BR><BR>//---------------------------------------------------------------------------<BR><BR><BR>void 

      __fastcall TForm1::Button9Click(TObject 

      *Sender)<BR><BR>{<BR><BR>Button4Click(Sender);<BR><BR>Button5Click(Sender);<BR><BR>Button6Click(Sender);<BR><BR>}</SPAN></P></TD></TR></TBODY></TABLE></DIV></BODY></HTML>

⌨️ 快捷键说明

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