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

沒畫完的畫

喂馬 劈柴 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>
            麻豆91精品| 99精品视频一区| 亚洲国产精品日韩| 国产日韩在线一区| 国产日本欧美一区二区三区在线| 亚洲天堂久久| 亚洲午夜久久久久久久久电影院 | 久久香蕉精品| 先锋亚洲精品| 久久人人超碰| 欧美成人嫩草网站| 亚洲精品在线视频观看| 久久精品一区二区三区四区 | 最新精品在线| 亚洲精品一区二区在线| 在线视频欧美日韩精品| 1024成人网色www| 亚洲精品国久久99热| 伊伊综合在线| 9久re热视频在线精品| 在线 亚洲欧美在线综合一区| 欧美国产欧美亚洲国产日韩mv天天看完整 | 亚洲欧美另类在线观看| 欧美一区二区黄色| 欧美成人性生活| 亚洲图片欧洲图片av| 久久蜜桃资源一区二区老牛| 欧美精品成人| 国产综合色产| 亚洲色无码播放| 老司机免费视频久久| 欧美日韩1区2区| 欧美成人精品不卡视频在线观看| 亚洲欧美日韩在线观看a三区| 在线观看福利一区| 亚洲视频第一页| 蜜桃av一区| 亚洲欧美日韩在线播放| 欧美精品一二三| 狠狠色狠狠色综合日日tαg| 在线综合亚洲| 亚洲国产福利在线| 久久亚洲高清| 在线中文字幕一区| 亚洲一区二区三区三| 美女尤物久久精品| 国产欧美一区二区精品性色| 亚洲每日在线| 蜜桃久久av一区| 欧美国产大片| 久久精品国产成人| 国产精品一区二区你懂得| 一区二区三区欧美在线| 亚洲国产精品国自产拍av秋霞 | 亚洲国产欧美日韩另类综合| 欧美成人午夜剧场免费观看| 亚洲国产成人精品女人久久久| 欧美电影在线观看| 久久aⅴ国产紧身牛仔裤| 久久久久久亚洲精品杨幂换脸| 久久久五月婷婷| 国产精品一区二区在线观看| 在线看成人片| 欧美成在线观看| 蜜桃视频一区| 91久久国产综合久久蜜月精品| 一区二区三区 在线观看视| 欧美激情久久久| 一本一本大道香蕉久在线精品| 亚洲在线成人精品| 国产精品天美传媒入口| 午夜精品视频在线| 亚洲婷婷综合久久一本伊一区| 久久国产日韩欧美| 激情五月婷婷综合| 欧美粗暴jizz性欧美20| 美日韩免费视频| 一本一本久久a久久精品综合麻豆| 欧美一区国产二区| 午夜视黄欧洲亚洲| 亚洲国产精品999| 亚洲欧美日韩精品久久| 免费欧美日韩| 欧美成人精品1314www| 国产日韩欧美不卡在线| 久久久国产91| 欧美成人黄色小视频| 亚洲综合视频网| 欧美日韩国产在线观看| 国产日韩精品视频一区| 久久人人爽人人爽爽久久| 亚洲精品国久久99热| 欧美三级电影一区| 久久久成人网| 欧美精品麻豆| 亚洲电影在线观看| 亚洲三级影片| 国产又爽又黄的激情精品视频| 午夜国产精品影院在线观看| 欧美一区二区三区免费视| 亚洲日本欧美在线| 欧美一区亚洲| 亚洲午夜电影网| 99re热精品| 黄色一区三区| 亚洲欧美久久久久一区二区三区| 欧美日韩在线一区二区| 久久午夜激情| 国产精品久久国产三级国电话系列| 日韩视频―中文字幕| 亚洲欧美激情四射在线日| 日韩视频在线播放| 久久精品中文字幕免费mv| 午夜精品一区二区三区在线播放| 亚洲一区bb| 亚洲日本成人| 久久亚洲捆绑美女| 久久国产免费| 国产精品va| 99热在线精品观看| 亚洲激情在线观看视频免费| 欧美一区二视频| 性欧美大战久久久久久久免费观看| 亚洲一区二区三区中文字幕| 亚洲人成网站精品片在线观看| 亚洲国产精彩中文乱码av在线播放| 久久婷婷麻豆| 亚洲黄色在线视频| 久久嫩草精品久久久精品一| 久久不射网站| 国产精品视频免费一区| 亚洲午夜激情网页| 亚洲少妇最新在线视频| 亚洲欧美日韩精品久久亚洲区| 国产精品捆绑调教| 久久久www成人免费无遮挡大片| 久久久久综合网| 欧美制服丝袜第一页| 国产日韩精品电影| 性欧美xxxx大乳国产app| 久久精品视频导航| 欧美国产日韩一区二区三区| 久热精品视频在线观看| 欧美大片免费观看在线观看网站推荐| 91久久精品国产91性色| 噜噜噜躁狠狠躁狠狠精品视频| 中文av字幕一区| 欧美日韩亚洲一区二区三区在线 | 欧美国产日韩二区| 狠狠色丁香婷婷综合久久片| 国产精品成人免费| 一本到12不卡视频在线dvd| 久久久91精品国产一区二区三区| 国产精品videossex久久发布| 在线亚洲免费| 欧美一区二区三区成人| 亚洲精品一区二区三区婷婷月| 欧美极品在线视频| 欧美黄在线观看| 夜夜精品视频一区二区| 欧美在线91| 麻豆91精品| 99视频超级精品| 国产美女精品| 久久久久久网| 亚洲乱码精品一二三四区日韩在线 | 久久精品免视看| 国产主播一区二区三区| 欧美成人一区二区在线 | 亚洲图片欧洲图片av| 久久久欧美精品sm网站| 欧美激情第二页| 亚洲制服少妇| 韩国精品久久久999| 亚洲一区二区三区中文字幕在线| 在线观看福利一区| 欧美日韩亚洲激情| 久久大逼视频| 亚洲麻豆视频| 猛干欧美女孩| 亚洲一级黄色| 伊甸园精品99久久久久久| 欧美日韩一视频区二区| 久久久之久亚州精品露出| 久久国产精品电影| 亚洲精品视频在线| 欧美成人精品影院| 亚洲婷婷综合久久一本伊一区| 亚洲一区二区伦理| 樱桃视频在线观看一区| 欧美午夜欧美| 欧美国产激情二区三区| 久久精品视频免费观看| 一区二区欧美视频| 亚洲第一黄色| 久久精品女人| 欧美专区日韩视频| 亚洲欧美日韩成人高清在线一区| 欧美日韩中文字幕日韩欧美| 久久久999精品视频|