请高手总结一下vc中句柄,指针,ID之间的转换
请问大虾们在vc中怎么样实现句柄,指针,ID之间的转换。如:HWNDhwndMain=CreateWindow("GenericAppClass","SuperVideo...
请问大虾们在vc中怎么样实现句柄,指针,ID之间的转换。
如:
HWND hwndMain = CreateWindow( "GenericAppClass",
"Super Video",
WS_POPUP,
0,
0,
500,
500,
NULL,
NULL,
hInstance,
NULL
);
怎样根据hwndMain 得到窗口的指针。
再如:
CWnd *mywnd=new CWnd;
mywnd->Create(_T("STATIC"), "", WS_CHILD | WS_VISIBLE,CRect(0, 0, 400, 400), this, 1234);
怎么根据mywnd得到窗口的句柄啊
还有就是句柄,指针,ID三者之间怎样根据一个得到另外两个,请高手指点。
急切期待中。。。。。。。
我只是举下例子。主要是想高手总结下。分我再加好了 展开
如:
HWND hwndMain = CreateWindow( "GenericAppClass",
"Super Video",
WS_POPUP,
0,
0,
500,
500,
NULL,
NULL,
hInstance,
NULL
);
怎样根据hwndMain 得到窗口的指针。
再如:
CWnd *mywnd=new CWnd;
mywnd->Create(_T("STATIC"), "", WS_CHILD | WS_VISIBLE,CRect(0, 0, 400, 400), this, 1234);
怎么根据mywnd得到窗口的句柄啊
还有就是句柄,指针,ID三者之间怎样根据一个得到另外两个,请高手指点。
急切期待中。。。。。。。
我只是举下例子。主要是想高手总结下。分我再加好了 展开
2个回答
展开全部
SDK编程中窗口ID,句柄,指针三者相互转换函数
ID--HANDLE--HWND三者之间的互相转换
id->句柄-----------hWnd = ::GetDlgItem(hParentWnd,id);
id->指针-----------CWnd::GetDlgItem();
句柄->id-----------id = GetWindowLong(hWnd,GWL_ID);
句柄->指针--------CWnd *pWnd=CWnd::FromHandle(hWnd);
指针->ID----------id = GetWindowLong(pWnd->GetSafeHwnd,GWL_ID);
GetDlgCtrlID();
指针->句柄--------hWnd=cWnd.GetSafeHandle() or mywnd->m_hWnd;
-------------------------------------------
早就有人总结了
-------------------------------------------
ID--HANDLE--HWND三者之间的互相转换
id->句柄-----------hWnd = ::GetDlgItem(hParentWnd,id);
id->指针-----------CWnd::GetDlgItem();
句柄->id-----------id = GetWindowLong(hWnd,GWL_ID);
句柄->指针--------CWnd *pWnd=CWnd::FromHandle(hWnd);
指针->ID----------id = GetWindowLong(pWnd->GetSafeHwnd,GWL_ID);
GetDlgCtrlID();
指针->句柄--------hWnd=cWnd.GetSafeHandle() or mywnd->m_hWnd;
-------------------------------------------
早就有人总结了
-------------------------------------------
参考资料: http://mylinux.spaces.live.com/blog/cns!2093FA24703BEA3F!120.entry
展开全部
HWND hwndMain = CreateWindow( "GenericAppClass",
"Super Video",
WS_POPUP,
0,
0,
500,
500,
NULL,
NULL,
hInstance,
NULL
);
CWnd* Wnd=new CWnd;
Wnd->Attach(hwndMain);//Wnd就是你想要的指针
CWnd *mywnd=new CWnd;
mywnd->Create(_T("STATIC"), "", WS_CHILD | WS_VISIBLE,CRect(0, 0, 400, 400), this, 1234);
mywnd->m_hWnd//这就是窗口的句柄
由ID获得指针
CWnd*p=GetDlgItem(ID,parent);//parent为父窗口
由指针获得ID
int ID=p->GetDlgCtrlID();
由指针获得句柄
p->m_hWnd
然后这上面三式就可以由一个获得另外两个
"Super Video",
WS_POPUP,
0,
0,
500,
500,
NULL,
NULL,
hInstance,
NULL
);
CWnd* Wnd=new CWnd;
Wnd->Attach(hwndMain);//Wnd就是你想要的指针
CWnd *mywnd=new CWnd;
mywnd->Create(_T("STATIC"), "", WS_CHILD | WS_VISIBLE,CRect(0, 0, 400, 400), this, 1234);
mywnd->m_hWnd//这就是窗口的句柄
由ID获得指针
CWnd*p=GetDlgItem(ID,parent);//parent为父窗口
由指针获得ID
int ID=p->GetDlgCtrlID();
由指针获得句柄
p->m_hWnd
然后这上面三式就可以由一个获得另外两个
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询