青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

沒畫完的畫

喂馬 劈柴 BBQ~
posts - 37, comments - 55, trackbacks - 0, articles - 0
  C++博客 ::  :: 新隨筆 :: 聯系 :: 聚合  :: 管理

初探DirectDraw 第2集

Posted on 2008-09-26 17:51 沒畫完的畫 閱讀(1570) 評論(1)  編輯 收藏 引用 所屬分類: DirectX
第1集中,DirectDraw 畫出來的界面是全屏的,想把它改成窗口的
我把原先在調用 SetCooperativeLevel() 時 DDSCL_FULLSCREEN 參數改成 DDSCL_NORMAL 
 if (FAILED(lpDDraw->SetCooperativeLevel(g_hwnd, DDSCL_NORMAL  )))
 
結果后面的
CreateSurface() 就調用失敗了,返回的錯誤是 DDERR_INVALIDCAPS
 
Google 了一下,意外地找到幾個URL
 
另外也找到了答案,代碼改動如下:
/**
  * 設置參數
  
*/

 
if (FAILED(lpDDraw->SetCooperativeLevel(g_hwnd, DDSCL_NORMAL  )))
 
{
  MessageBox(NULL,TEXT(
"DirectDraw SetCooperativeLevel error!"), TEXT("Wrong!"), MB_OK);
  
return(0);
 }


 
/**
  * 創建一個表層
  
*/

 DDSURFACEDESC ddsd;
 LPDIRECTDRAWSURFACE lpDDSPrimary;
 ddsd.dwSize 
= sizeof(ddsd); 
 ddsd.dwFlags 
= DDSD_CAPS ; 
 ddsd.ddsCaps.dwCaps 
= DDSCAPS_PRIMARYSURFACE; 
 ddsd.dwBackBufferCount 
= 1
 ddrval 
= lpDDraw->CreateSurface(&ddsd, &lpDDSPrimary, NULL); 
    
if (FAILED(ddrval))
 
{
   MessageBox(NULL, 
"Failed to CreateSurface", NULL, MB_OK);
  
return FALSE;
 }


全部代碼:
 /**
  * 創建一個 DirectDraw 對象
  
*/

 LPDIRECTDRAW _lpDD 
= NULL; 
 HRESULT ddrval 
= DirectDrawCreate(NULL, &_lpDD, NULL);
    
if (FAILED(ddrval))
 
{
     MessageBox(NULL, 
"Failed to DirectDrawCreate", NULL, MB_OK);
  
return FALSE;
 }

 LPDIRECTDRAW lpDDraw 
= NULL;
 
if(FAILED(_lpDD->QueryInterface(IID_IDirectDraw, (LPVOID *)&lpDDraw)))
 
{
  MessageBox(NULL,TEXT(
"DirectDraw QueryInterface error!"), TEXT("Wrong!"), MB_OK);
  
return(0);
 }

 
/**
  * 設置執行模式
  
*/

 
if (FAILED(lpDDraw->SetCooperativeLevel(g_hwnd, DDSCL_NORMAL  )))
 
{
  MessageBox(NULL,TEXT(
"DirectDraw SetCooperativeLevel error!"), TEXT("Wrong!"), MB_OK);
  
return(0);
 }

 
/**
  * 創建一個表層
  
*/

 DDSURFACEDESC ddsd;
 LPDIRECTDRAWSURFACE lpDDSPrimary;
 ddsd.dwSize 
= sizeof(ddsd); 
 ddsd.dwFlags 
= DDSD_CAPS ; 
 ddsd.ddsCaps.dwCaps 
= DDSCAPS_PRIMARYSURFACE; 
 ddsd.dwBackBufferCount 
= 1
 ddrval 
= lpDDraw->CreateSurface(&ddsd, &lpDDSPrimary, NULL); 
    
if (FAILED(ddrval))
 
{
   MessageBox(NULL, 
"Failed to CreateSurface", NULL, MB_OK);
  
return FALSE;
 }

 HDC hdc;
 
if(lpDDSPrimary->GetDC(&hdc) == DD_OK) 
 

  SetBkColor(hdc, RGB(
0,0,255)); 
  SetTextColor( hdc,RGB(
255,255,0 ) ); 
  TextOut( hdc, 
00"sxFrontMsg", lstrlen("szFrontMsg")); 
  lpDDSPrimary
->ReleaseDC(hdc); 
 }
 

*-*!!!! 
雖然不像之前全屏黑色,這次是“窗口模式”,DDSCL_NORMAL 或 DDSCL_FULLSCREEN 跟調用 CreateSurface() 時的參數有聯系,
 
但怎么 TextOut  還是在屏幕的左上角?????
 
聽說有一個 Clipper 的對象,就是一個“剪切區域”,通過這個對象可以防止畫圖畫出指定的范圍
 
修改代碼如下:
/**
  * 設置執行模式
  
*/

 
if (FAILED(lpDDraw->SetCooperativeLevel(g_hwnd, DDSCL_NORMAL  )))
 
{
  MessageBox(NULL,TEXT(
"DirectDraw SetCooperativeLevel error!"), TEXT("Wrong!"), MB_OK);
  
return(0);
 }

 
/**
  * 創建一個表層
  
*/

 DDSURFACEDESC ddsd;
 LPDIRECTDRAWSURFACE lpDDSPrimary;
 ddsd.dwSize 
= sizeof(ddsd); 
 ddsd.dwFlags 
= DDSD_CAPS ; 
 ddsd.ddsCaps.dwCaps 
= DDSCAPS_PRIMARYSURFACE; 
 ddsd.dwBackBufferCount 
= 1
 ddrval 
= lpDDraw->CreateSurface(&ddsd, &lpDDSPrimary, NULL); 
    
if (FAILED(ddrval))
 
{
  MessageBox(NULL, 
"Failed to CreateSurface", NULL, MB_OK);
  
return FALSE;
 }

 LPDIRECTDRAWCLIPPER clipper;
 
if(lpDDraw->CreateClipper(0&clipper, NULL) != DD_OK)
 

  MessageBox(NULL, 
"Failed to GreateClipper", NULL, MB_OK);
  
return FALSE;
 }

 
if( lpDDSPrimary->SetClipper(clipper) != DD_OK )
 

  MessageBox(NULL, 
"Failed to SetClipper", NULL, MB_OK);
  
return FALSE;
 }

 clipper
->SetHWnd(0, g_hwnd);
 HDC hdc;
 
if(lpDDSPrimary->GetDC(&hdc) != DD_OK) 
 

  MessageBox(NULL, 
"Failed to GetDC", NULL, MB_OK);
  
return FALSE;
 }


 SetBkColor(hdc, RGB(
0,0,255)); 
 SetTextColor( hdc,RGB(
255,255,0 ) ); 
 TextOut( hdc, 
00"sxFrontMsg", lstrlen("szFrontMsg")); 
 lpDDSPrimary
->ReleaseDC(hdc); 


*-*!!!!  TextOut 出來的東西依然顯示在左上角!!!!
 
突然覺得好餓!!!,吃完東西再研究~~

Feedback

# re: 初探DirectDraw 第2集  回復  更多評論   

2008-09-29 17:27 by 矩陣操作
ddraw在dx9里面已經取消了吧?

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            99re热这里只有精品免费视频| 久久亚洲精品网站| 在线亚洲精品| 正在播放亚洲| 亚洲小说区图片区| 亚洲欧美另类久久久精品2019| 亚洲一区二区精品| 亚洲欧美日本在线| 久久先锋资源| 亚洲成人在线网| 亚洲免费不卡| 欧美一区二区黄| 免费视频一区| 欧美国产三级| 国产午夜精品理论片a级探花| 国产专区综合网| 亚洲精品影视| 久久久久综合一区二区三区| 亚洲高清视频中文字幕| 中文av字幕一区| 欧美综合77777色婷婷| 欧美成人资源| 国产一区成人| 一本色道久久综合亚洲精品高清| 亚洲欧美日韩高清| 亚洲第一精品电影| 亚洲欧美色婷婷| 欧美福利视频| 国内外成人免费视频 | 欧美国产视频在线| 99视频精品| 美女精品网站| 国产亚洲一区在线| 亚洲一区二区三区在线播放| 免费永久网站黄欧美| 中文精品视频| 欧美高清视频在线观看| 国内视频一区| 欧美在线免费视频| 一区二区三区视频在线播放| 美女视频黄免费的久久| 国产无一区二区| 午夜在线精品| 日韩视频不卡| 欧美美女bbbb| 亚洲靠逼com| 亚洲福利视频在线| 久久午夜精品| 精品99一区二区| 久久亚洲一区二区三区四区| 一区二区日韩伦理片| 国产精品久久久免费| 影音先锋久久精品| 久久aⅴ乱码一区二区三区| 亚洲国产经典视频| 久久成人一区| 国产一区二区三区四区hd| 亚洲欧美日韩另类| 一本色道婷婷久久欧美| 欧美日韩高清一区| 夜久久久久久| 亚洲激情啪啪| 欧美精品久久久久久久久久| 欧美日韩国产影院| 一本久久a久久精品亚洲| 久久国产乱子精品免费女 | 亚洲免费播放| 欧美日韩在线不卡一区| 99精品久久久| 国产精品yjizz| 亚洲中字黄色| 国产精品99久久久久久久vr| 国产精品区一区二区三区| 久久国产日韩欧美| 久久精品成人欧美大片古装| 影音先锋久久| 亚洲精品免费电影| 欧美亚韩一区| 久久久久久久精| 免费久久99精品国产自| 日韩午夜免费视频| 亚洲一区在线直播| 在线播放日韩专区| 亚洲精品在线二区| 国产精品永久| 欧美粗暴jizz性欧美20| 欧美区在线播放| 久久av最新网址| 模特精品在线| 欧美一级久久久久久久大片| 欧美亚洲网站| 久久久久一区二区三区| 欧美a级一区二区| 亚洲欧美国产77777| 久久爱www久久做| 99精品欧美一区二区三区| 亚洲午夜电影网| 在线观看亚洲精品| 欧美午夜理伦三级在线观看| 性欧美精品高清| 美女脱光内衣内裤视频久久影院 | 美女成人午夜| 欧美性生交xxxxx久久久| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美日韩国产色站一区二区三区 | av成人免费在线| 欧美激情网友自拍| 欧美在线黄色| 美女性感视频久久久| 亚洲一区二区免费在线| 久久久久91| 欧美一激情一区二区三区| 女人天堂亚洲aⅴ在线观看| 欧美.日韩.国产.一区.二区| 在线亚洲免费| 欧美激情网友自拍| 亚洲另类黄色| 欧美涩涩网站| 久久综合给合久久狠狠色| 欧美国产在线电影| 久久午夜色播影院免费高清| 亚洲免费网站| 久久精品国产成人| 在线亚洲精品| 狼人社综合社区| 免费不卡在线视频| 亚洲观看高清完整版在线观看| 亚洲性视频网址| 亚洲国产精品成人综合| 在线欧美日韩国产| 免费永久网站黄欧美| 久久躁狠狠躁夜夜爽| 国产一区二区三区视频在线观看| 含羞草久久爱69一区| 男女av一区三区二区色多| 欧美日韩一区二区三区四区在线观看| 免费在线看一区| 韩国av一区二区三区| 亚洲午夜在线视频| 夜夜狂射影院欧美极品| 欧美高清视频一区| 猛男gaygay欧美视频| 国产欧美视频在线观看| 亚洲尤物在线| 久久久久久电影| 一区二区视频免费完整版观看| 欧美一区综合| 欧美成人日韩| 亚洲免费精彩视频| 欧美三级电影精品| 亚洲在线播放电影| 久久免费黄色| 亚洲三级色网| 欧美性色视频在线| 中文精品一区二区三区 | 亚洲国产影院| 欧美成年人视频网站| 亚洲美女精品成人在线视频| 亚洲午夜电影在线观看| 国产精品入口夜色视频大尺度| 欧美一区在线视频| 亚洲韩国青草视频| 亚洲欧美日本视频在线观看| 国产在线视频不卡二| 欧美99在线视频观看| 亚洲午夜视频在线| 老司机午夜精品视频| 亚洲美女在线一区| 国产欧美一区视频| 欧美91精品| 亚洲免费视频网站| 欧美激情一区二区在线| 亚洲综合日本| 91久久在线| 国产网站欧美日韩免费精品在线观看 | 欧美一区二区女人| 在线成人亚洲| 欧美小视频在线观看| 香蕉久久夜色精品国产| 亚洲国产精品黑人久久久| 欧美亚洲在线播放| 亚洲激情精品| 黄色日韩网站| 国产精品video| 媚黑女一区二区| 香蕉成人伊视频在线观看| 美女网站在线免费欧美精品| 亚洲影院高清在线| 亚洲区在线播放| 狠狠色狠狠色综合日日tαg| 欧美体内she精视频在线观看| 久久亚洲不卡| 久久精品一区二区国产| 亚洲免费视频网站| 99视频精品全国免费| 亚洲高清一区二| 欧美激情视频在线播放| 久久一二三区| 久久偷看各类wc女厕嘘嘘偷窃| 午夜精品久久久久|