Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Using an MFC custom control from Qt
Forum Updated to NodeBB v4.3 + New Features

Using an MFC custom control from Qt

Scheduled Pinned Locked Moved Unsolved General and Desktop
12 Posts 5 Posters 941 Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • PerdrixP Offline
    PerdrixP Offline
    Perdrix
    wrote on last edited by
    #3

    Well I didn't want to "just try it" as that could be the "wrong" way to proceed.

    What's the recommended approach for hosting an MFC CWND derived window with a QWidget? Surely this must have come up before?

    JonBJ JKSHJ 2 Replies Last reply
    0
    • PerdrixP Perdrix

      Well I didn't want to "just try it" as that could be the "wrong" way to proceed.

      What's the recommended approach for hosting an MFC CWND derived window with a QWidget? Surely this must have come up before?

      JonBJ Offline
      JonBJ Offline
      JonB
      wrote on last edited by JonB
      #4

      @Perdrix
      https://forum.qt.io/topic/76525/cwnd-to-qwidget

      Separately, I don't know whether it's relevant but you may wish to look through https://docs.huihoo.com/qt/solutions/4/qtwinmigrate/winmigrate-walkthrough.html

      1 Reply Last reply
      3
      • PerdrixP Perdrix

        Well I didn't want to "just try it" as that could be the "wrong" way to proceed.

        What's the recommended approach for hosting an MFC CWND derived window with a QWidget? Surely this must have come up before?

        JKSHJ Offline
        JKSHJ Offline
        JKSH
        Moderators
        wrote on last edited by
        #5

        @Perdrix said in Using an MFC custom control from Qt:

        What's the recommended approach for hosting an MFC CWND derived window with a QWidget? Surely this must have come up before?

        MFC and Qt are quite different frameworks and combining them is challenging. I don't have the experience to do it "correctly"; I'm not sure if anyone in this forum has that experience.

        Thank you @JonB for providing links to what others have tried before. The source code for the Qt/MFC Migration Framework used by the walkthrough can be found at https://github.com/qtproject/qt-solutions/tree/master/qtwinmigrate . Unfortunately, it is no longer maintained so there is currently no officially-supported way to merge CWND and QWidget.

        Qt Doc Search for browsers: forum.qt.io/topic/35616/web-browser-extension-for-improved-doc-searches

        PerdrixP 1 Reply Last reply
        3
        • JKSHJ JKSH

          @Perdrix said in Using an MFC custom control from Qt:

          What's the recommended approach for hosting an MFC CWND derived window with a QWidget? Surely this must have come up before?

          MFC and Qt are quite different frameworks and combining them is challenging. I don't have the experience to do it "correctly"; I'm not sure if anyone in this forum has that experience.

          Thank you @JonB for providing links to what others have tried before. The source code for the Qt/MFC Migration Framework used by the walkthrough can be found at https://github.com/qtproject/qt-solutions/tree/master/qtwinmigrate . Unfortunately, it is no longer maintained so there is currently no officially-supported way to merge CWND and QWidget.

          PerdrixP Offline
          PerdrixP Offline
          Perdrix
          wrote on last edited by
          #6

          I'm using qmfcapp and qwinwidget as they seem to be the only way to go.

          I'm frankly quite shocked that you don't support those anymore - this must be a very common requirement for everyone who's converting their code to Qt!

          I'm also a bit surprised that there's no expertise on porting to Qt here either ...

          David

          1 Reply Last reply
          0
          • hskoglundH Offline
            hskoglundH Offline
            hskoglund
            wrote on last edited by
            #7

            Just want to add to what @JKSH said above (.. they are quite different frameworks):

            I used MFC and Visual C++ for almost 20 years before waking up to Qt and initially tried to port some code over, however all the MFC macros like message maps etc I could just toss and same for MVC stuff, so the only type of code that I did port was CString juggling (CString and QString are probably the most similar in vein parts of their respective frameworks).

            1 Reply Last reply
            2
            • mrjjM Offline
              mrjjM Offline
              mrjj
              Lifetime Qt Champion
              wrote on last edited by
              #8

              Hi
              What does this complex MFC custom control do ?
              Mixing MFC and Qt might end up being a bigger job than to recreate
              this control in Qt.

              1 Reply Last reply
              0
              • PerdrixP Offline
                PerdrixP Offline
                Perdrix
                wrote on last edited by Perdrix
                #9

                One of them is a class derived from this: https://www.codeproject.com/articles/555/wndimage-control.

                It adds mouse tracking, hit-testing, wheel zooming and "4-corners" mode that zooms into the four corners of the image.

                With four corners not enabled:

                25777e28-a69b-4585-a594-61b3ee6a7f33-image.png https://www.codeproject.com/articles/555/wndimage-control

                With four corners enabled:

                565df5d6-e28e-4098-88e3-f5a2f38d05bd-image.png

                The image is populated from an internally calculated windows bitmap (BITMAPINFO) derived from a 32bit floating point representation of an image. We'd obviously need to have a non-Windows in storage bitmap representation (maybe a Pixmap?) that could be built dynamically from our internal representation.

                David

                1 Reply Last reply
                0
                • mrjjM Offline
                  mrjjM Offline
                  mrjj
                  Lifetime Qt Champion
                  wrote on last edited by mrjj
                  #10

                  Hi
                  The https://doc.qt.io/qt-5/graphicsview.html
                  would give panning / zooming and and mouse tracking for (almost) free.

                  is the 4 zoom area like a lens effect that zoom the area while you can pan the image around or is it more static ?

                  1 Reply Last reply
                  2
                  • PerdrixP Offline
                    PerdrixP Offline
                    Perdrix
                    wrote on last edited by Perdrix
                    #11

                    The four corner stuff is static ...

                    I'll take another look at the graphicsview control. I thought that was for managing lots of items within a scene, not for handling a single image.

                    Thanks
                    David

                    mrjjM 1 Reply Last reply
                    0
                    • PerdrixP Perdrix

                      The four corner stuff is static ...

                      I'll take another look at the graphicsview control. I thought that was for managing lots of items within a scene, not for handling a single image.

                      Thanks
                      David

                      mrjjM Offline
                      mrjjM Offline
                      mrjj
                      Lifetime Qt Champion
                      wrote on last edited by
                      #12

                      @Perdrix
                      Hi
                      Well its also good to have many items but can also be
                      used for a single item like an image

                      https://doc.qt.io/qt-5/qgraphicspixmapitem.html

                      1 Reply Last reply
                      0

                      • Login

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • Users
                      • Groups
                      • Search
                      • Get Qt Extensions
                      • Unsolved