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
CODE PROJECT For Those Who Code
  • Home
  • Articles
  • FAQ
Community
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. How to change the Title(Caption) of Modal Dialog Box?

How to change the Title(Caption) of Modal Dialog Box?

Scheduled Pinned Locked Moved C / C++ / MFC
tutorialquestionlearning
21 Posts 7 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 Offline
    M Offline
    mikert_2008
    wrote on last edited by
    #1

    Hi, I have the dialog box. Which I am using as Modal dialog box with DoModal functionality. I need to change the Title(Caption) of dialog box before calling the domodal(). Since I am deciding the title of dialog box at run time I can't use the resource setting. One way I know to change the title of Modal Dialog Box is to use OnInitDialog() function of the class derived from the DialgBox and then call setwindowtext() function inside it. But I want to change the title/cation without using OnInitDialog as the project I am working doesn't have class derived from it. And doesn't look proper to genrate the class just for this purpose. Can anybody knows the other way of doing it?? Thanks in advance.. Mike.

    K L CPalliniC D A 6 Replies Last reply
    0
    • M mikert_2008

      Hi, I have the dialog box. Which I am using as Modal dialog box with DoModal functionality. I need to change the Title(Caption) of dialog box before calling the domodal(). Since I am deciding the title of dialog box at run time I can't use the resource setting. One way I know to change the title of Modal Dialog Box is to use OnInitDialog() function of the class derived from the DialgBox and then call setwindowtext() function inside it. But I want to change the title/cation without using OnInitDialog as the project I am working doesn't have class derived from it. And doesn't look proper to genrate the class just for this purpose. Can anybody knows the other way of doing it?? Thanks in advance.. Mike.

      K Offline
      K Offline
      KarstenK
      wrote on last edited by
      #2

      define a public string member in your dialog class which get set between ctor and oninit and will do setwindowtext()in your OnInitDialog()

      Press F1 for help or google it. Greetings from Germany

      M 1 Reply Last reply
      0
      • M mikert_2008

        Hi, I have the dialog box. Which I am using as Modal dialog box with DoModal functionality. I need to change the Title(Caption) of dialog box before calling the domodal(). Since I am deciding the title of dialog box at run time I can't use the resource setting. One way I know to change the title of Modal Dialog Box is to use OnInitDialog() function of the class derived from the DialgBox and then call setwindowtext() function inside it. But I want to change the title/cation without using OnInitDialog as the project I am working doesn't have class derived from it. And doesn't look proper to genrate the class just for this purpose. Can anybody knows the other way of doing it?? Thanks in advance.. Mike.

        L Offline
        L Offline
        Lost User
        wrote on last edited by
        #3

        I assume from your comments that this is a Win32 dialog rather than MFC. If that is the case you can still trap the WM_INITDIALOG[^] message and change the title there.

        It's time for a new signature.

        CPalliniC M D 3 Replies Last reply
        0
        • M mikert_2008

          Hi, I have the dialog box. Which I am using as Modal dialog box with DoModal functionality. I need to change the Title(Caption) of dialog box before calling the domodal(). Since I am deciding the title of dialog box at run time I can't use the resource setting. One way I know to change the title of Modal Dialog Box is to use OnInitDialog() function of the class derived from the DialgBox and then call setwindowtext() function inside it. But I want to change the title/cation without using OnInitDialog as the project I am working doesn't have class derived from it. And doesn't look proper to genrate the class just for this purpose. Can anybody knows the other way of doing it?? Thanks in advance.. Mike.

          CPalliniC Online
          CPalliniC Online
          CPallini
          wrote on last edited by
          #4

          I think that you may do it, using the CDialog::InitModalIndirect route (see [^]), but it would be "full of pain", because you have to create and fill properly the DLGTEMPLATE struct ([^] read carefully the "Remarks" section). :)

          If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
          This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
          [My articles]

          In testa che avete, signor di Ceprano?

          M 1 Reply Last reply
          0
          • L Lost User

            I assume from your comments that this is a Win32 dialog rather than MFC. If that is the case you can still trap the WM_INITDIALOG[^] message and change the title there.

            It's time for a new signature.

            CPalliniC Online
            CPalliniC Online
            CPallini
            wrote on last edited by
            #5

            Nah, inheritance is not an option in Win32. :)

            If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
            This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
            [My articles]

            In testa che avete, signor di Ceprano?

            1 Reply Last reply
            0
            • K KarstenK

              define a public string member in your dialog class which get set between ctor and oninit and will do setwindowtext()in your OnInitDialog()

              Press F1 for help or google it. Greetings from Germany

              M Offline
              M Offline
              mikert_2008
              wrote on last edited by
              #6

              Hi, As I mentioned I am not having any Dialog class where I can use the OnInitDialog() function. I want to do it without using it. What I am trying for is the without using separate dialog class for it. Thanks Mike

              K 1 Reply Last reply
              0
              • L Lost User

                I assume from your comments that this is a Win32 dialog rather than MFC. If that is the case you can still trap the WM_INITDIALOG[^] message and change the title there.

                It's time for a new signature.

                M Offline
                M Offline
                mikert_2008
                wrote on last edited by
                #7

                Hi, I am aware of the InItDialog functionality. But I am not having Dialog derived for it. I am trying to avoid the creation of seperate class for this purpose. Is it possible to change the dialog header without using InItDialog?? Thanks:- Mike

                1 Reply Last reply
                0
                • CPalliniC CPallini

                  I think that you may do it, using the CDialog::InitModalIndirect route (see [^]), but it would be "full of pain", because you have to create and fill properly the DLGTEMPLATE struct ([^] read carefully the "Remarks" section). :)

                  If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
                  This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
                  [My articles]

                  M Offline
                  M Offline
                  mikert_2008
                  wrote on last edited by
                  #8

                  Hi, It's for creating Modal dialog box indirectly. But I already have the dialog box. Thanks:- Mike

                  CPalliniC 1 Reply Last reply
                  0
                  • M mikert_2008

                    Hi, It's for creating Modal dialog box indirectly. But I already have the dialog box. Thanks:- Mike

                    CPalliniC Online
                    CPalliniC Online
                    CPallini
                    wrote on last edited by
                    #9

                    That's the only way, IMO. :)

                    If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
                    This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
                    [My articles]

                    In testa che avete, signor di Ceprano?

                    1 Reply Last reply
                    0
                    • L Lost User

                      I assume from your comments that this is a Win32 dialog rather than MFC. If that is the case you can still trap the WM_INITDIALOG[^] message and change the title there.

                      It's time for a new signature.

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

                      Richard MacCutchan wrote:

                      I assume from your comments that this is a Win32 dialog rather than MFC.

                      Even though he mentions DoModal()?

                      "One man's wage rise is another man's price increase." - Harold Wilson

                      "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

                      "Man who follows car will be exhausted." - Confucius

                      L 1 Reply Last reply
                      0
                      • M mikert_2008

                        Hi, I have the dialog box. Which I am using as Modal dialog box with DoModal functionality. I need to change the Title(Caption) of dialog box before calling the domodal(). Since I am deciding the title of dialog box at run time I can't use the resource setting. One way I know to change the title of Modal Dialog Box is to use OnInitDialog() function of the class derived from the DialgBox and then call setwindowtext() function inside it. But I want to change the title/cation without using OnInitDialog as the project I am working doesn't have class derived from it. And doesn't look proper to genrate the class just for this purpose. Can anybody knows the other way of doing it?? Thanks in advance.. Mike.

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

                        mikert_2008 wrote:

                        ...the project I am working doesn't have class derived from it.

                        So what object are you calling DoModal() from?

                        "One man's wage rise is another man's price increase." - Harold Wilson

                        "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

                        "Man who follows car will be exhausted." - Confucius

                        M 1 Reply Last reply
                        0
                        • D David Crow

                          mikert_2008 wrote:

                          ...the project I am working doesn't have class derived from it.

                          So what object are you calling DoModal() from?

                          "One man's wage rise is another man's price increase." - Harold Wilson

                          "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

                          "Man who follows car will be exhausted." - Confucius

                          M Offline
                          M Offline
                          mikert_2008
                          wrote on last edited by
                          #12

                          CDialog dlgAbout(IDD_ABOUTBOX); dlgAbout.DoModal();

                          C 1 Reply Last reply
                          0
                          • D David Crow

                            Richard MacCutchan wrote:

                            I assume from your comments that this is a Win32 dialog rather than MFC.

                            Even though he mentions DoModal()?

                            "One man's wage rise is another man's price increase." - Harold Wilson

                            "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

                            "Man who follows car will be exhausted." - Confucius

                            L Offline
                            L Offline
                            Lost User
                            wrote on last edited by
                            #13

                            OK, guys I misread it, I shall perform a suitable act of self-humiliation in penance! :((

                            It's time for a new signature.

                            D 1 Reply Last reply
                            0
                            • L Lost User

                              OK, guys I misread it, I shall perform a suitable act of self-humiliation in penance! :((

                              It's time for a new signature.

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

                              Richard MacCutchan wrote:

                              ...I shall perform a suitable act of self-humiliation in penance!

                              No, I do not wish to see you dancing on a table wearing a sombrero.

                              "One man's wage rise is another man's price increase." - Harold Wilson

                              "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

                              "Man who follows car will be exhausted." - Confucius

                              L 1 Reply Last reply
                              0
                              • D David Crow

                                Richard MacCutchan wrote:

                                ...I shall perform a suitable act of self-humiliation in penance!

                                No, I do not wish to see you dancing on a table wearing a sombrero.

                                "One man's wage rise is another man's price increase." - Harold Wilson

                                "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

                                "Man who follows car will be exhausted." - Confucius

                                L Offline
                                L Offline
                                Lost User
                                wrote on last edited by
                                #15

                                I've been told my maracas are a sight to behold. :laugh:

                                It's time for a new signature.

                                D 1 Reply Last reply
                                0
                                • L Lost User

                                  I've been told my maracas are a sight to behold. :laugh:

                                  It's time for a new signature.

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

                                  You did NOT just say that while I was eating.

                                  "One man's wage rise is another man's price increase." - Harold Wilson

                                  "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

                                  "Man who follows car will be exhausted." - Confucius

                                  1 Reply Last reply
                                  0
                                  • M mikert_2008

                                    CDialog dlgAbout(IDD_ABOUTBOX); dlgAbout.DoModal();

                                    C Offline
                                    C Offline
                                    Chris Meech
                                    wrote on last edited by
                                    #17

                                    Just an idea to research further. Before you instantiate the dialog, would it not be possible to modify the IDD_ABOUTBOX dialog resource to change the caption property? I don't know how to do that, but that is one thing I would investigate. :)

                                    Chris Meech I am Canadian. [heard in a local bar] In theory there is no difference between theory and practice. In practice there is. [Yogi Berra]

                                    D 1 Reply Last reply
                                    0
                                    • C Chris Meech

                                      Just an idea to research further. Before you instantiate the dialog, would it not be possible to modify the IDD_ABOUTBOX dialog resource to change the caption property? I don't know how to do that, but that is one thing I would investigate. :)

                                      Chris Meech I am Canadian. [heard in a local bar] In theory there is no difference between theory and practice. In practice there is. [Yogi Berra]

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

                                      I *think* this is what InitModalIndirect() was suggested for. Like you, however, I've not personally tried it.

                                      "One man's wage rise is another man's price increase." - Harold Wilson

                                      "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

                                      "Man who follows car will be exhausted." - Confucius

                                      1 Reply Last reply
                                      0
                                      • M mikert_2008

                                        Hi, I have the dialog box. Which I am using as Modal dialog box with DoModal functionality. I need to change the Title(Caption) of dialog box before calling the domodal(). Since I am deciding the title of dialog box at run time I can't use the resource setting. One way I know to change the title of Modal Dialog Box is to use OnInitDialog() function of the class derived from the DialgBox and then call setwindowtext() function inside it. But I want to change the title/cation without using OnInitDialog as the project I am working doesn't have class derived from it. And doesn't look proper to genrate the class just for this purpose. Can anybody knows the other way of doing it?? Thanks in advance.. Mike.

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

                                        mikert_2008 wrote:

                                        ...the project I am working doesn't have class derived from it. And doesn't look proper to genrate the class just for this purpose.

                                        Other than looks, what reservations do you have to this approach? Read here for Paul's response to using a CDialog object directly.

                                        "One man's wage rise is another man's price increase." - Harold Wilson

                                        "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

                                        "Man who follows car will be exhausted." - Confucius

                                        1 Reply Last reply
                                        0
                                        • M mikert_2008

                                          Hi, I have the dialog box. Which I am using as Modal dialog box with DoModal functionality. I need to change the Title(Caption) of dialog box before calling the domodal(). Since I am deciding the title of dialog box at run time I can't use the resource setting. One way I know to change the title of Modal Dialog Box is to use OnInitDialog() function of the class derived from the DialgBox and then call setwindowtext() function inside it. But I want to change the title/cation without using OnInitDialog as the project I am working doesn't have class derived from it. And doesn't look proper to genrate the class just for this purpose. Can anybody knows the other way of doing it?? Thanks in advance.. Mike.

                                          A Offline
                                          A Offline
                                          Aescleal
                                          wrote on last edited by
                                          #20

                                          I had a quick scan through the answers below and you didn't seem that enamoured of any of them as you weren't using/couldn't use MFC. Having said that you've already answered your own question...

                                          mikert_2008 wrote:

                                          One way I know to change the title of Modal Dialog Box is to use OnInitDialog() function of the class derived from the DialgBox and then call setwindowtext() function inside it.

                                          If you look at the MFC documentation or read the source code you'll see that CDialog::OnInitDialog is called in response to a WM_INITDIALOG message being sent to the dialog box. All you have to do in your code is handle WM_INITDIALOG and call SetWindowText at that point. Cheers, Ash

                                          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