【问题标题】:C++ get window handle from device contextC++ 从设备上下文中获取窗口句柄
【发布时间】:2019-09-17 16:55:42
【问题描述】:

我一直试图通过设备上下文句柄获取窗口句柄。我已经尝试过 WindowFromDC() 并且它不断返回空结果。如何从任何设备上下文中获取窗口句柄?

【问题讨论】:

  • DC 是从哪里来的?如果它什么都没有返回,它会是一个记忆DC吗?

标签: c++ window handle


【解决方案1】:

也许没有属于这个 DC 的窗口。

如果没有与指定DC关联的窗口,则返回值为NULL。

例如,您可以创建一个屏幕外位图(没有窗口)并为其获取 DC。那么这个 DC 就没有窗口了。

【讨论】:

  • 几乎所有的结果都是空的,所以我分不清桌面和应用自带的dcs的区别
  • 我知道它获得了桌面的直流电。桌面的 hwnd 不为空。
【解决方案2】:

大家都知道如何获取DC的句柄,但没有人知道如何获取对应窗口的句柄?

试试这个:

HWnd = WindowFromDC(HDc)

参考:https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-windowfromdc

【讨论】:

    【解决方案3】:
    HDC hdc;               // display device context handle  
    
    
    // Retrieve a handle identifying the private DC.  
    
    hdc = GetDC(hwnd); 
    

    http://msdn.microsoft.com/en-us/library/dd162744(v=vs.85).aspx

    【讨论】:

    • 这与所要求的相反。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-28
    • 2011-02-26
    • 1970-01-01
    • 1970-01-01
    • 2010-11-30
    相关资源
    最近更新 更多