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. CDialog DoModal function [Moved]

CDialog DoModal function [Moved]

Scheduled Pinned Locked Moved C / C++ / MFC
20 Posts 2 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.
  • P Offline
    P Offline
    prithaa
    wrote on last edited by
    #1

    Hello, can i use a DoModal function without actually making the dialog in the resources. Pritha

    modified on Friday, October 1, 2010 12:47 PM

    L 1 Reply Last reply
    0
    • P prithaa

      Hello, can i use a DoModal function without actually making the dialog in the resources. Pritha

      modified on Friday, October 1, 2010 12:47 PM

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

      If you mean by creating your dialog template in memory, then you can do it after intialising with the CDialog::InitModalIndirect()[^] method.

      Just say 'NO' to evaluated arguments for diadic functions! Ash

      P 1 Reply Last reply
      0
      • L Lost User

        If you mean by creating your dialog template in memory, then you can do it after intialising with the CDialog::InitModalIndirect()[^] method.

        Just say 'NO' to evaluated arguments for diadic functions! Ash

        P Offline
        P Offline
        prithaa
        wrote on last edited by
        #3

        Is the CDialog::InitModalIndirect different for different versions of Visual Studio

        L 1 Reply Last reply
        0
        • P prithaa

          Is the CDialog::InitModalIndirect different for different versions of Visual Studio

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

          prithaa wrote:

          Is the CDialog::InitModalIndirect different for different versions of Visual Studio

          Not that I am aware of; check the documentation page(s) that I posted in my previous answer.

          Just say 'NO' to evaluated arguments for diadic functions! Ash

          P 1 Reply Last reply
          0
          • L Lost User

            prithaa wrote:

            Is the CDialog::InitModalIndirect different for different versions of Visual Studio

            Not that I am aware of; check the documentation page(s) that I posted in my previous answer.

            Just say 'NO' to evaluated arguments for diadic functions! Ash

            P Offline
            P Offline
            prithaa
            wrote on last edited by
            #5

            hello, thankyou for replying. there seems no difference in calling the InitModalIndirect() but when I changed the version of my project I getting debug just before when the dialog opens and the same dialog was fine in the Visul studio 6.0. Pritha

            L 1 Reply Last reply
            0
            • P prithaa

              hello, thankyou for replying. there seems no difference in calling the InitModalIndirect() but when I changed the version of my project I getting debug just before when the dialog opens and the same dialog was fine in the Visul studio 6.0. Pritha

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

              prithaa wrote:

              when I changed the version of my project I getting debug just before when the dialog opens and the same dialog was fine in the Visul studio 6.0.

              Sorry, but I am not sure what you mean by this, or what it has to do with your original question. Do you have a problem that you cannot resolve, and if so what is the code that is failing?

              Just say 'NO' to evaluated arguments for diadic functions! Ash

              P 1 Reply Last reply
              0
              • L Lost User

                prithaa wrote:

                when I changed the version of my project I getting debug just before when the dialog opens and the same dialog was fine in the Visul studio 6.0.

                Sorry, but I am not sure what you mean by this, or what it has to do with your original question. Do you have a problem that you cannot resolve, and if so what is the code that is failing?

                Just say 'NO' to evaluated arguments for diadic functions! Ash

                P Offline
                P Offline
                prithaa
                wrote on last edited by
                #7

                thanks for replies I made a class derived from CDialog with memery allocations for DLGTEMPLATE structure.Basically doing what was required to do for making a dialog without resources and was working fine with Visual Studio 6.But the sames classes, objects r not working with Visual Studio 2005 though I m not getting any compile time error. So I read through the documetation of any differnece for making the dialogs but it was not helpful. Any suggestions

                L 1 Reply Last reply
                0
                • P prithaa

                  thanks for replies I made a class derived from CDialog with memery allocations for DLGTEMPLATE structure.Basically doing what was required to do for making a dialog without resources and was working fine with Visual Studio 6.But the sames classes, objects r not working with Visual Studio 2005 though I m not getting any compile time error. So I read through the documetation of any differnece for making the dialogs but it was not helpful. Any suggestions

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

                  prithaa wrote:

                  But the sames classes, objects r not working with Visual Studio 2005

                  What does "not working" mean, it explains nothing; try and be more specific about the results you expect and what you see. Are you sure that all your dialog items are correctly aligned to WORD or DWORD boundaries, as required?

                  Just say 'NO' to evaluated arguments for diadic functions! Ash

                  P 1 Reply Last reply
                  0
                  • L Lost User

                    prithaa wrote:

                    But the sames classes, objects r not working with Visual Studio 2005

                    What does "not working" mean, it explains nothing; try and be more specific about the results you expect and what you see. Are you sure that all your dialog items are correctly aligned to WORD or DWORD boundaries, as required?

                    Just say 'NO' to evaluated arguments for diadic functions! Ash

                    P Offline
                    P Offline
                    prithaa
                    wrote on last edited by
                    #9

                    thanks I will check with that. But not working means I am getting Debug Assertion failure for DoModal() function. Can u please clear Are you sure that all your dialog items are correctly aligned to WORD or DWORD boundaries, as required? Pritha

                    L 1 Reply Last reply
                    0
                    • P prithaa

                      thanks I will check with that. But not working means I am getting Debug Assertion failure for DoModal() function. Can u please clear Are you sure that all your dialog items are correctly aligned to WORD or DWORD boundaries, as required? Pritha

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

                      prithaa wrote:

                      I am getting Debug Assertion failure for DoModal() function.

                      Well that should give you a clue; look at the details of the assertion and try to figure out why it is getting thrown, and which parameter in your dialog may be causing the problem.

                      prithaa wrote:

                      Can u please clear ...

                      I mean, check the positioning of all your dialog items in memory to ensure that they are correctly aligned, before you call DoModal(); for further information see here[^].

                      Just say 'NO' to evaluated arguments for diadic functions! Ash

                      P 1 Reply Last reply
                      0
                      • L Lost User

                        prithaa wrote:

                        I am getting Debug Assertion failure for DoModal() function.

                        Well that should give you a clue; look at the details of the assertion and try to figure out why it is getting thrown, and which parameter in your dialog may be causing the problem.

                        prithaa wrote:

                        Can u please clear ...

                        I mean, check the positioning of all your dialog items in memory to ensure that they are correctly aligned, before you call DoModal(); for further information see here[^].

                        Just say 'NO' to evaluated arguments for diadic functions! Ash

                        P Offline
                        P Offline
                        prithaa
                        wrote on last edited by
                        #11

                        thanks

                        L 1 Reply Last reply
                        0
                        • P prithaa

                          thanks

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

                          So does this solve the problem?

                          Just say 'NO' to evaluated arguments for diadic functions! Ash

                          P 1 Reply Last reply
                          0
                          • L Lost User

                            So does this solve the problem?

                            Just say 'NO' to evaluated arguments for diadic functions! Ash

                            P Offline
                            P Offline
                            prithaa
                            wrote on last edited by
                            #13

                            No but then I got a few guidelines towards the solutions. can i paste my code hear .It is about memory allocation and then calling InitModalIndirect Pritha

                            L 1 Reply Last reply
                            0
                            • P prithaa

                              No but then I got a few guidelines towards the solutions. can i paste my code hear .It is about memory allocation and then calling InitModalIndirect Pritha

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

                              prithaa wrote:

                              can i paste my code hear

                              Sure, if you think it will be useful for others.

                              Just say 'NO' to evaluated arguments for diadic functions! Ash

                              P 1 Reply Last reply
                              0
                              • L Lost User

                                prithaa wrote:

                                can i paste my code hear

                                Sure, if you think it will be useful for others.

                                Just say 'NO' to evaluated arguments for diadic functions! Ash

                                P Offline
                                P Offline
                                prithaa
                                wrote on last edited by
                                #15

                                int MFC::Dialog::DoModal() { int cWC = MultiByteToWideChar(CP_ACP, 0, m_strCaption, -1, NULL, 0); int szBoxLen = cWC + 1; WCHAR *szBoxCaption = new WCHAR[szBoxLen]; // Copy the string... MultiByteToWideChar(CP_ACP, 0, m_strCaption, -1, (LPWSTR) szBoxCaption, cWC); szBoxCaption[cWC] = 0; szBoxLen = (cWC) * sizeof(WCHAR); int nBufferSize = sizeof(DLGTEMPLATE) + (2 * sizeof(WORD)) /*menu and class + szBoxLen /*size of caption*/ + sizeof(WORD) /*fontsize*/ ;//+ nFontNameLen /*size of fontname*/; HLOCAL hLocal = LocalAlloc(LHND, nBufferSize); if (hLocal != NULL) { BYTE* pBuffer = (BYTE*)LocalLock(hLocal); if (pBuffer == NULL) { LocalFree(hLocal); AfxMessageBox(_T("D::DoModal() : LocalLock Failed")); } BYTE *pdest = pBuffer; // transfer DLGTEMPLATE structure to the buffer memcpy(pdest, &m_DialogTemplate, sizeof(DLGTEMPLATE)); // DLGTemplate pdest += sizeof(DLGTEMPLATE); *(WORD*)pdest = 0;// no menu -- WORD to say it is 0 bytes pdest += sizeof(WORD); // Increment *(WORD*)(pdest + 1) = 0; // use default window class -- WORD to say it is 0 bytes pdest += sizeof(WORD); // Increment memcpy(pdest, szBoxCaption, szBoxLen); // Caption pdest += szBoxLen; //These are the MFC functions, which do the job... InitModalIndirect((LPDLGTEMPLATE)pBuffer, m_pParentWnd); int iRet =0; iRet = CDialog::DoModal(); LocalUnlock(hLocal); LocalFree(hLocal); return 0; } else { AfxMessageBox(_T("D::DoModal() : LocalAllock Failed")); return -1; } }

                                L 1 Reply Last reply
                                0
                                • P prithaa

                                  int MFC::Dialog::DoModal() { int cWC = MultiByteToWideChar(CP_ACP, 0, m_strCaption, -1, NULL, 0); int szBoxLen = cWC + 1; WCHAR *szBoxCaption = new WCHAR[szBoxLen]; // Copy the string... MultiByteToWideChar(CP_ACP, 0, m_strCaption, -1, (LPWSTR) szBoxCaption, cWC); szBoxCaption[cWC] = 0; szBoxLen = (cWC) * sizeof(WCHAR); int nBufferSize = sizeof(DLGTEMPLATE) + (2 * sizeof(WORD)) /*menu and class + szBoxLen /*size of caption*/ + sizeof(WORD) /*fontsize*/ ;//+ nFontNameLen /*size of fontname*/; HLOCAL hLocal = LocalAlloc(LHND, nBufferSize); if (hLocal != NULL) { BYTE* pBuffer = (BYTE*)LocalLock(hLocal); if (pBuffer == NULL) { LocalFree(hLocal); AfxMessageBox(_T("D::DoModal() : LocalLock Failed")); } BYTE *pdest = pBuffer; // transfer DLGTEMPLATE structure to the buffer memcpy(pdest, &m_DialogTemplate, sizeof(DLGTEMPLATE)); // DLGTemplate pdest += sizeof(DLGTEMPLATE); *(WORD*)pdest = 0;// no menu -- WORD to say it is 0 bytes pdest += sizeof(WORD); // Increment *(WORD*)(pdest + 1) = 0; // use default window class -- WORD to say it is 0 bytes pdest += sizeof(WORD); // Increment memcpy(pdest, szBoxCaption, szBoxLen); // Caption pdest += szBoxLen; //These are the MFC functions, which do the job... InitModalIndirect((LPDLGTEMPLATE)pBuffer, m_pParentWnd); int iRet =0; iRet = CDialog::DoModal(); LocalUnlock(hLocal); LocalFree(hLocal); return 0; } else { AfxMessageBox(_T("D::DoModal() : LocalAllock Failed")); return -1; } }

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

                                  Please could you put <pre></pre> tags around your code so that it is readable (just edit your message and use the code block button). Also use the Preview button before you post to make sure it is all formatted correctly. Your code looks like: int MFC::Dialog::DoModal() { int cWC = MultiByteToWideChar(CP_ACP, 0, m_strCaption, -1, NULL, 0); int szBoxLen = cWC + 1; WCHAR *szBoxCaption = new WCHAR[szBoxLen]; // ... it should look like:

                                  int MFC::Dialog::DoModal()
                                  {
                                  int cWC = MultiByteToWideChar(CP_ACP, 0, m_strCaption, -1, NULL, 0);
                                  int szBoxLen = cWC + 1;
                                  WCHAR *szBoxCaption = new WCHAR[szBoxLen];
                                  // ...

                                  Just say 'NO' to evaluated arguments for diadic functions! Ash

                                  P 1 Reply Last reply
                                  0
                                  • L Lost User

                                    Please could you put <pre></pre> tags around your code so that it is readable (just edit your message and use the code block button). Also use the Preview button before you post to make sure it is all formatted correctly. Your code looks like: int MFC::Dialog::DoModal() { int cWC = MultiByteToWideChar(CP_ACP, 0, m_strCaption, -1, NULL, 0); int szBoxLen = cWC + 1; WCHAR *szBoxCaption = new WCHAR[szBoxLen]; // ... it should look like:

                                    int MFC::Dialog::DoModal()
                                    {
                                    int cWC = MultiByteToWideChar(CP_ACP, 0, m_strCaption, -1, NULL, 0);
                                    int szBoxLen = cWC + 1;
                                    WCHAR *szBoxCaption = new WCHAR[szBoxLen];
                                    // ...

                                    Just say 'NO' to evaluated arguments for diadic functions! Ash

                                    P Offline
                                    P Offline
                                    prithaa
                                    wrote on last edited by
                                    #17

                                    DLGTEMPLATE m_DialogTemplate;

                                    int MFC::Dialog::DoModal() { //For OK and Cancel buttons?? m_DialogTemplate.cy+=(DlgControls.size()*4); AddOkCancel(); int iRet=0; //presetting for caption in the dialog.... int cWC = MultiByteToWideChar(CP_ACP, 0, m_strCaption, -1, NULL,0); int szBoxLen = cWC + 1; WCHAR *szBoxCaption = new WCHAR[szBoxLen]; // Copy the string... MultiByteToWideChar(CP_ACP, 0, m_strCaption, -1, (LPWSTR)szBoxCaption, cWC); szBoxCaption[cWC] = 0; szBoxLen = (cWC) * sizeof(WCHAR); int nBufferSize = sizeof(DLGTEMPLATE) + (2 * sizeof(WORD)) /*menu and class*/ + szBoxLen /*size of caption*/ + sizeof(WORD) /*fontsize*/ ;//+ nFontNameLen /*size of fontname*/; HLOCAL hLocal = LocalAlloc(LHND, nBufferSize); if (hLocal != NULL) { BYTE* pBuffer = (BYTE*)LocalLock(hLocal); if (pBuffer == NULL) { LocalFree(hLocal); AfxMessageBox(_T("D::DoModal() : LocalLock Failed")); } BYTE *pdest = pBuffer; // transfer DLGTEMPLATE structure to the buffer memcpy(pdest, &m_DialogTemplate, sizeof(DLGTEMPLATE)); // DLGTemplate pdest += sizeof(DLGTEMPLATE); *(WORD*)pdest = 0; // no menu -- WORD to say it is 0 bytes pdest += sizeof(WORD); // Increment *(WORD*)(pdest + 1) = 0; // use default window class -- WORD to say it is 0 bytes pdest += sizeof(WORD); // Increment memcpy(pdest, szBoxCaption, szBoxLen); // Caption pdest += szBoxLen; //These are the MFC functions, which do the job... InitModalIndirect((LPDLGTEMPLATE)pBuffer, m_pParentWnd); iRet = CDialog::DoModal(); LocalUnlock(hLocal); LocalFree(hLocal); return iRet; } else { AfxMessageBox(_T("D::DoModal() : LocalAllock Failed")); return -1; } }

                                    L 1 Reply Last reply
                                    0
                                    • P prithaa

                                      DLGTEMPLATE m_DialogTemplate;

                                      int MFC::Dialog::DoModal() { //For OK and Cancel buttons?? m_DialogTemplate.cy+=(DlgControls.size()*4); AddOkCancel(); int iRet=0; //presetting for caption in the dialog.... int cWC = MultiByteToWideChar(CP_ACP, 0, m_strCaption, -1, NULL,0); int szBoxLen = cWC + 1; WCHAR *szBoxCaption = new WCHAR[szBoxLen]; // Copy the string... MultiByteToWideChar(CP_ACP, 0, m_strCaption, -1, (LPWSTR)szBoxCaption, cWC); szBoxCaption[cWC] = 0; szBoxLen = (cWC) * sizeof(WCHAR); int nBufferSize = sizeof(DLGTEMPLATE) + (2 * sizeof(WORD)) /*menu and class*/ + szBoxLen /*size of caption*/ + sizeof(WORD) /*fontsize*/ ;//+ nFontNameLen /*size of fontname*/; HLOCAL hLocal = LocalAlloc(LHND, nBufferSize); if (hLocal != NULL) { BYTE* pBuffer = (BYTE*)LocalLock(hLocal); if (pBuffer == NULL) { LocalFree(hLocal); AfxMessageBox(_T("D::DoModal() : LocalLock Failed")); } BYTE *pdest = pBuffer; // transfer DLGTEMPLATE structure to the buffer memcpy(pdest, &m_DialogTemplate, sizeof(DLGTEMPLATE)); // DLGTemplate pdest += sizeof(DLGTEMPLATE); *(WORD*)pdest = 0; // no menu -- WORD to say it is 0 bytes pdest += sizeof(WORD); // Increment *(WORD*)(pdest + 1) = 0; // use default window class -- WORD to say it is 0 bytes pdest += sizeof(WORD); // Increment memcpy(pdest, szBoxCaption, szBoxLen); // Caption pdest += szBoxLen; //These are the MFC functions, which do the job... InitModalIndirect((LPDLGTEMPLATE)pBuffer, m_pParentWnd); iRet = CDialog::DoModal(); LocalUnlock(hLocal); LocalFree(hLocal); return iRet; } else { AfxMessageBox(_T("D::DoModal() : LocalAllock Failed")); return -1; } }

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

                                      Well I guess you missed most of my message where I said: 1. Edit your message, i.e. the one where you posted the code. 2. Use <pre></pre> tags around your code. 3. Use the Preview button to check that what you have posted is correct.

                                      Just say 'NO' to evaluated arguments for diadic functions! Ash

                                      P 1 Reply Last reply
                                      0
                                      • L Lost User

                                        Well I guess you missed most of my message where I said: 1. Edit your message, i.e. the one where you posted the code. 2. Use <pre></pre> tags around your code. 3. Use the Preview button to check that what you have posted is correct.

                                        Just say 'NO' to evaluated arguments for diadic functions! Ash

                                        P Offline
                                        P Offline
                                        prithaa
                                        wrote on last edited by
                                        #19

                                        sorry i m posting code for the first time

                                        int MFC::Dialog::DoModal()
                                        {
                                        //For OK and Cancel buttons??
                                        m_DialogTemplate.cy+=(DlgControls.size()*4);

                                        AddOkCancel();
                                        
                                        int iRet=0;
                                        
                                        //presetting for caption in the dialog....
                                        	
                                        int cWC = MultiByteToWideChar(CP\_ACP, 0, m\_strCaption, -1, NULL, 0);
                                        int szBoxLen = cWC + 1;
                                        WCHAR \*szBoxCaption = new WCHAR\[szBoxLen\];
                                        // Copy the string...
                                        MultiByteToWideChar(CP\_ACP, 0, m\_strCaption, -1, (LPWSTR) szBoxCaption, cWC);
                                        szBoxCaption\[cWC\] = 0;
                                        szBoxLen = (cWC) \* sizeof(WCHAR);
                                        
                                        int nBufferSize =  sizeof(DLGTEMPLATE) + (2 \* sizeof(WORD)) /\*menu and class\*/ + szBoxLen /\*size of caption\*/
                                        	+ sizeof(WORD) /\*fontsize\*/ ;//+ nFontNameLen /\*size of fontname\*/;
                                        
                                        HLOCAL hLocal = LocalAlloc(LHND, nBufferSize);
                                        if (hLocal != NULL) {
                                        	BYTE\* pBuffer = (BYTE\*)LocalLock(hLocal);
                                        	if (pBuffer == NULL) {
                                        		LocalFree(hLocal);
                                        		AfxMessageBox(\_T("D::DoModal() : LocalLock Failed"));
                                        	}
                                        
                                        	BYTE \*pdest = pBuffer;
                                        	// transfer DLGTEMPLATE structure to the buffer
                                        	memcpy(pdest, &m\_DialogTemplate, sizeof(DLGTEMPLATE));	// DLGTemplate
                                        	pdest += sizeof(DLGTEMPLATE);
                                        	\*(WORD\*)pdest = 0;									// no menu					-- WORD to say it is 0 bytes
                                        	pdest += sizeof(WORD);								// Increment
                                        	\*(WORD\*)(pdest + 1) = 0;							// use default window class -- WORD to say it is 0 bytes
                                        	pdest += sizeof(WORD);								// Increment
                                        	memcpy(pdest, szBoxCaption, szBoxLen);			// Caption
                                        	pdest += szBoxLen;
                                        	
                                        	//These are the MFC functions, which do the job...
                                        
                                        	InitModalIndirect((LPDLGTEMPLATE)pBuffer, m\_pParentWnd);
                                        	iRet = CDialog::DoModal();
                                        	
                                        	LocalUnlock(hLocal);
                                        	LocalFree(hLocal);
                                        	return iRet;
                                        }
                                        else {
                                        	AfxMessageBox(\_T("D::DoModal() : LocalAllock Failed"));
                                        	return -1;
                                        }
                                        

                                        }

                                        P 1 Reply Last reply
                                        0
                                        • P prithaa

                                          sorry i m posting code for the first time

                                          int MFC::Dialog::DoModal()
                                          {
                                          //For OK and Cancel buttons??
                                          m_DialogTemplate.cy+=(DlgControls.size()*4);

                                          AddOkCancel();
                                          
                                          int iRet=0;
                                          
                                          //presetting for caption in the dialog....
                                          	
                                          int cWC = MultiByteToWideChar(CP\_ACP, 0, m\_strCaption, -1, NULL, 0);
                                          int szBoxLen = cWC + 1;
                                          WCHAR \*szBoxCaption = new WCHAR\[szBoxLen\];
                                          // Copy the string...
                                          MultiByteToWideChar(CP\_ACP, 0, m\_strCaption, -1, (LPWSTR) szBoxCaption, cWC);
                                          szBoxCaption\[cWC\] = 0;
                                          szBoxLen = (cWC) \* sizeof(WCHAR);
                                          
                                          int nBufferSize =  sizeof(DLGTEMPLATE) + (2 \* sizeof(WORD)) /\*menu and class\*/ + szBoxLen /\*size of caption\*/
                                          	+ sizeof(WORD) /\*fontsize\*/ ;//+ nFontNameLen /\*size of fontname\*/;
                                          
                                          HLOCAL hLocal = LocalAlloc(LHND, nBufferSize);
                                          if (hLocal != NULL) {
                                          	BYTE\* pBuffer = (BYTE\*)LocalLock(hLocal);
                                          	if (pBuffer == NULL) {
                                          		LocalFree(hLocal);
                                          		AfxMessageBox(\_T("D::DoModal() : LocalLock Failed"));
                                          	}
                                          
                                          	BYTE \*pdest = pBuffer;
                                          	// transfer DLGTEMPLATE structure to the buffer
                                          	memcpy(pdest, &m\_DialogTemplate, sizeof(DLGTEMPLATE));	// DLGTemplate
                                          	pdest += sizeof(DLGTEMPLATE);
                                          	\*(WORD\*)pdest = 0;									// no menu					-- WORD to say it is 0 bytes
                                          	pdest += sizeof(WORD);								// Increment
                                          	\*(WORD\*)(pdest + 1) = 0;							// use default window class -- WORD to say it is 0 bytes
                                          	pdest += sizeof(WORD);								// Increment
                                          	memcpy(pdest, szBoxCaption, szBoxLen);			// Caption
                                          	pdest += szBoxLen;
                                          	
                                          	//These are the MFC functions, which do the job...
                                          
                                          	InitModalIndirect((LPDLGTEMPLATE)pBuffer, m\_pParentWnd);
                                          	iRet = CDialog::DoModal();
                                          	
                                          	LocalUnlock(hLocal);
                                          	LocalFree(hLocal);
                                          	return iRet;
                                          }
                                          else {
                                          	AfxMessageBox(\_T("D::DoModal() : LocalAllock Failed"));
                                          	return -1;
                                          }
                                          

                                          }

                                          P Offline
                                          P Offline
                                          prithaa
                                          wrote on last edited by
                                          #20

                                          thanks for helping

                                          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