您的位置:首页 > 其它

CWnd 对象怎么和 HWND 窗口句柄相互转化

2010-04-06 17:55 239 查看

CWnd *wnd;
HWND hWnd;

它们怎么相互转换?
1.wnd->m_wnd;
2.CWnd *wnd=CWnd::FromHandle(hwnd)

你是说要强制转换吗?恐怕不行吧?wnd是窗口指针,hWnd是窗口句柄呀!不过可以互相获取,如下:
hWnd=wnd->m_hWnd;
wnd.Atach(hWnd)
建立一个CWnd对象,然后使用Attach将HWND和CWnd对象联系起来

static CWnd* PASCAL FromHandle( HWND hWnd );通过HWND构造一个CWnd*指针(但该指针在空闲时会被删除,所以不能保存供以后使用)。

//CWnd Object to HWND:
CWnd wnd;
HWND hWnd;

hWnd = wnd.m_hWnd;
// or
hWnd = wnd.GetSafeHwnd(); //推荐

// HWND to CWnd Object:
CWnd *pWnd;
HWND hWnd;

pWnd = CWnd::FromHandle(hWnd);
// or
pWnd->Attach(hWnd);

http://blog.chinaunix.net/u/28371/showart_234740.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: