#include <QtGui/5.12.6/QtGui/qpa/qplatformnativeinterface.h>
QWindow * windowForWidget( const QWidget * widget )
{
QWindow * window = widget->windowHandle();
if( window )
return window;
const QWidget * nativeParent = widget->nativeParentWidget();
if( nativeParent )
return nativeParent->windowHandle();
return nullptr;
}
HWND getHWNDForWidget( const QWidget * widget )
{
QWindow * window = ::windowForWidget( widget );
if( window && window->handle() )
{
QPlatformNativeInterface * iface = QGuiApplication::platformNativeInterface();
return static_cast<HWND>(iface->nativeResourceForWindow( QByteArrayLiteral( "handle" ), window ));
}
return nullptr;
}
template< int X, int Y >
class NAME
{
public:
enum { field1 = X, field2 = Y };
};
typedef NAME<5,7> Name57;
int a = Name57::field1;
int b = Name57::field2;