注册 登录
编程论坛 C++ Builder

怎样获取TImage的窗口句柄?

BlueDreame 发布于 2006-10-11 07:34, 2593 次点击

导师限定了Image组件,需要利用此组件进行Direct Draw的窗口开发。但是Image似乎没有句柄。我试过Canvas,也失败了。

请问有解决的办法吗?

6 回复
#2
Knocker2006-10-11 08:56
Image1->Canvas->Handle;
#3
Knocker2006-10-11 09:01
还有
Image1->Picture->Bitmap->Handle;
#4
BlueDreame2006-10-11 09:47
问题是Direct Draw的初始化需要这个句柄。我响应的是OnCreate,那时Canvas好像无效。
#5
Knocker2006-10-11 18:26
要么代码贴几行上来看看
#6
BlueDreame2006-10-11 19:01

void __fastcall TMainForm::FormCreate(TObject *Sender)
{
HWND hWnd;
DWORD dwRet = m_draw.Init(Img->Canvas->Handle,
SCREEN_WIDTH, SCREEN_HEIGHT, 24);
if(DD_OK != dwRet)
{
wsprintf(g_szErr,
"Direct Draw 7 initialize failed!\nError code is %u", dwRet);
MessageBox(NULL, g_szErr, "Error", MB_OK);
Application->Terminate();
}
}

在SetCooperativeLevel(m_hWnd, DDSCL_NORMAL)时,Img->Canvas->Handle导致失败。

#7
listonline2008-01-04 23:58
用全局变量试试
1