CWnd与HWND,GetSafeHwnd()与m_hWnd

HWND是Windows系统中的窗口句柄,CWnd是MFC中的窗体类,两者的所属不同。CWnd对HWND进行了封装类,更加高级也更加简化。

HWND是Window内核处理对象,系统通过HWND进行操作,而我们则更多的通过CWnd提供的函数来间接操作HWND。

HWND是CWnd类的组成部分,CWnd对象的成员中有HWND对象(m_hWnd)。

以下三种都可获取控件句柄:

HWND hwnd = GetDlgItem(控件的ID)->GetSafeHwnd();   //获取句柄,GetSafeHwnd()比m_hWnd更安全,因为内部会判断是否为NULL,推荐使用

HWND hwnd = GetDlgItem(控件的ID)->m_hWnd;   //获取句柄

CWnd *pWnd = GetDlgItem(控件的ID); //获取控件句柄

【参考】

https://www.cnblogs.com/suanec/p/3892836.html

猜你喜欢

转载自www.cnblogs.com/xixixing/p/12010450.html