Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. How do I get the handle of a dialog in Visual C

How do I get the handle of a dialog in Visual C

Scheduled Pinned Locked Moved C / C++ / MFC
c++questionhelptutorial
19 Posts 6 Posters 0 Views 1 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.
  • M Maximilien

    If it's your dialog, you probably have a variable assigned to it.

    YourDialog dlg;

    or

    YourDialog* pDlg;
    pDlg = new YourDialog;
    //...

    after you create the dialog (Create), you could do something like

    HWND CWnd::GetSafeHwnd( ) const;

    to get the handle to the dialog.

    This signature was proudly tested on animals.

    J Offline
    J Offline
    jonsey29847
    wrote on last edited by
    #8

    MFC does not expose the handle to me, or does it? Thanks for fast replies!

    M 1 Reply Last reply
    0
    • J jonsey29847

      MFC does not expose the handle to me, or does it? Thanks for fast replies!

      M Offline
      M Offline
      Maximilien
      wrote on last edited by
      #9

      Well, GetSafeHwnd() returns a safe handle to the dialog window. do you need something more ?

      This signature was proudly tested on animals.

      J 1 Reply Last reply
      0
      • M Maximilien

        Well, GetSafeHwnd() returns a safe handle to the dialog window. do you need something more ?

        This signature was proudly tested on animals.

        J Offline
        J Offline
        jonsey29847
        wrote on last edited by
        #10

        HWND hwndDlg = GetSafeHwnd(); Is it really that simple? How does GetSafeHwnd() know which window you wish the handle of? Thanks

        D 1 Reply Last reply
        0
        • J jonsey29847

          HWND hwndDlg = GetSafeHwnd(); Is it really that simple? How does GetSafeHwnd() know which window you wish the handle of? Thanks

          D Offline
          D Offline
          David Crow
          wrote on last edited by
          #11

          jonsey29847 wrote:

          How does GetSafeHwnd() know which window you wish the handle of?

          It's called in the context of a CWnd object.

          "Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown

          "Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons

          1 Reply Last reply
          0
          • J jonsey29847

            So I can use existing code in an application that I developed using Win32 APIs. i.e.SendMessage(HWND, ID, wparam, lparam) MFC "Hides" this from me. However, if I am taking off in wrong direction I would appreciate some guidance here. Thanks

            D Offline
            D Offline
            David Crow
            wrote on last edited by
            #12

            If you wanted to send a message to some edit control, you could use:

            m_edit.SendMessage(WM_GETTEXTLENGTH, 0, 0);

            or

            ::SendMessage(m_edit.GetSafeHwnd(), WM_GETTEXTLENGTH, 0, 0);

            or

            m_edit.GetWindowTextLength();

            "Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown

            "Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons

            J 1 Reply Last reply
            0
            • D David Crow

              If you wanted to send a message to some edit control, you could use:

              m_edit.SendMessage(WM_GETTEXTLENGTH, 0, 0);

              or

              ::SendMessage(m_edit.GetSafeHwnd(), WM_GETTEXTLENGTH, 0, 0);

              or

              m_edit.GetWindowTextLength();

              "Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown

              "Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons

              J Offline
              J Offline
              jonsey29847
              wrote on last edited by
              #13

              You have struck upon one of the problems I have using MFC. What does m_edit mean and where can I find a list of all the m_whatever? Thanks

              D 1 Reply Last reply
              0
              • J jonsey29847

                You have struck upon one of the problems I have using MFC. What does m_edit mean and where can I find a list of all the m_whatever? Thanks

                D Offline
                D Offline
                David Crow
                wrote on last edited by
                #14

                jonsey29847 wrote:

                What does m_edit mean and where can I find a list of all the m_whatever?

                It's just an arbitrary name I chose for that code snippet. You may call it whatever you wish.

                "Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown

                "Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons

                J 1 Reply Last reply
                0
                • D David Crow

                  jonsey29847 wrote:

                  What does m_edit mean and where can I find a list of all the m_whatever?

                  It's just an arbitrary name I chose for that code snippet. You may call it whatever you wish.

                  "Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown

                  "Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons

                  J Offline
                  J Offline
                  jonsey29847
                  wrote on last edited by
                  #15

                  Is it the name I assign using the class wizard?

                  D 1 Reply Last reply
                  0
                  • J jonsey29847

                    Is it the name I assign using the class wizard?

                    D Offline
                    D Offline
                    David Crow
                    wrote on last edited by
                    #16

                    Yes.

                    "Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown

                    "Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons

                    J 1 Reply Last reply
                    0
                    • D David Crow

                      Yes.

                      "Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown

                      "Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons

                      J Offline
                      J Offline
                      jonsey29847
                      wrote on last edited by
                      #17

                      Wow! I can't wait to try it. I just love this website! Thanks.

                      1 Reply Last reply
                      0
                      • J jonsey29847

                        Hello, I am porting a Dialog based application that I used Lcc-Win32 to develop over to Visual C++. How to I get the handle of my Dialog box? Thanks in advance for your help.

                        A Offline
                        A Offline
                        ali kanju
                        wrote on last edited by
                        #18

                        associate a class with dialog and use object of that class to access dialog.

                        1 Reply Last reply
                        0
                        • J jonsey29847

                          Hello, I am porting a Dialog based application that I used Lcc-Win32 to develop over to Visual C++. How to I get the handle of my Dialog box? Thanks in advance for your help.

                          S Offline
                          S Offline
                          sujeet
                          wrote on last edited by
                          #19

                          In your dialog class m_hWnd varialbe will give you the handle of your dialog. You can store it as, HWND DialogHandle = m_hWnd ; Regards, Sujeet

                          1 Reply Last reply
                          0
                          Reply
                          • Reply as topic
                          Log in to reply
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes


                          • Login

                          • Don't have an account? Register

                          • Login or register to search.
                          • First post
                            Last post
                          0
                          • Categories
                          • Recent
                          • Tags
                          • Popular
                          • World
                          • Users
                          • Groups