Important: Please read the Qt Code of Conduct -

QML's Native parent Window

  • I write a QML Window like this

    import QtQuick 2.9
    import QtQuick.Window 2.2
    Window {
        visible: true
        width: text1.width
        height: text1.height
        title: qsTr("Hello World")
        flags: Qt.FramelessWindowHint
        color: "#70000000"
        x: 0
        y: 0
        Text {
            id: text1
            x: 0
            y: 0
            text: "Hello World"
            color: "#FFFF0000"
    int main(int argc, char *argv[])
        QGuiApplication app(argc, argv);
        QQmlApplicationEngine engine;
        if (engine.rootObjects().isEmpty())
            return -1;
        QQuickWindow *pMainWnd = qobject_cast<QQuickWindow*>(engine.rootObjects()[0]);
        HWND hShowWnd = (HWND)pMainWnd->winId();
        DWORD dwStyle = GetWindowLong(hShowWnd, GWL_STYLE);
        SetWindowLong(hShowWnd, GWL_STYLE, dwStyle | WS_POPUP | WS_VISIBLE);
        DWORD dwExStyle = GetWindowLong(hShowWnd, GWL_EXSTYLE);
        SetWindowLong(hShowWnd, GWL_EXSTYLE, dwExStyle | WS_EX_TOOLWINDOW);
        HWND hWndParent = FindWindow(nullptr, TEXT("MFCApplication1"));
        SetParent(hShowWnd, hWndParent); //Windows API
        return app.exec();

    it can not display on MFCApplication1 Window

Log in to reply