代码为什么实现不了 窗口化?求指点,显示我的画图区,但同时点击桌面上的其他图标时,没反应,只能alt+tab退出才行

chg829 2011-09-05 10:35:50
求指点看有什么问题,显示我的画图区,但同时点击整个屏幕桌面上的其他图标时,没反应,只能alt+tab退出才行
hr = ::CoInitialize(NULL);
if(hr != S_OK)
return hr;
hr = DirectDrawCreate(NULL, &m_pDirectDraw, NULL);
if(hr != S_OK)
return hr;
//
hr = m_pDirectDraw-> SetCooperativeLevel(m_hWnd, DDSCL_NORMAL);

//To create the primary surface
DDSURFACEDESC ddsd;
memset(&ddsd, 0, sizeof(ddsd));
ddsd.dwSize = sizeof(ddsd);
ddsd.dwFlags = DDSD_CAPS;
ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE;
hr = m_pDirectDraw-> CreateSurface(&ddsd, &m_pDDFrontSurface, NULL);
if(hr != S_OK)
return hr;

//To create the backbuffer
ddsd.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT;
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE;
ddsd.dwWidth = 100;
ddsd.dwHeight = 100;
hr = m_pDirectDraw-> CreateSurface(&ddsd, &m_pDDBlackSurface, NULL);
if(hr != S_OK)
return hr;

//To create the cliper for front surface
LPDIRECTDRAWCLIPPER lpCliper = NULL;
hr = m_pDirectDraw-> CreateClipper(0, &lpCliper, NULL);
if(hr != S_OK)
return hr;

//Set the hwnd to cliper
hr = lpCliper-> SetHWnd(0, m_hWnd);
if(hr != S_OK)
{
lpCliper-> Release();
return hr;
}

//To set the cliper to front surface
hr = m_pDDFrontSurface-> SetClipper(lpCliper);
if(hr != S_OK)
{
lpCliper-> Release();
return hr;
}
lpCliper-> Release();

...全文
58 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
LZNJ06 2011-09-05
  • 打赏
  • 举报
回复
帮顶了。。。

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧