BOOL OnInitDialog()
{
CListBox wndListBox;
wndListBox.Attach (GetDlgItem (IDC_LIST1)->m_hWnd);
wndListBox.AddString (_T ("One"));
wndListBox.AddString (_T ("Two"));
wndListBox.AddString (_T ("Three"));
wndListBox.Detach ();
return true;
}
When I use this code above in BOOL OnInitDialog() function of CDialog class, this code below can't execute. (IDC_LIST1 is a member of IDD_DLTEST1). Can you explain for me ? If I want to open IDD_DLTEST1 dialog, What do I have to do?
void CallDialog()
{
Dlg d1(IDD_DLTEST1);
d1.DoModal();
}
|
Go4Expert Founder
|
![]() |
| 14Nov2006,10:49 | #2 |
|
I could not get what you are asking.
|
|
Light Poster
|
|
| 14Nov2006,23:22 | #3 |
|
When i used this code in CDialog class:
Code:
BOOL OnInitDialog()
{
CListBox wndListBox;
wndListBox.Attach (GetDlgItem (IDC_LIST1)->m_hWnd);
wndListBox.AddString (_T ("One"));
wndListBox.AddString (_T ("Two"));
wndListBox.AddString (_T ("Three"));
wndListBox.Detach ();
return true;
}
Code:
void CallDialog()
{
Dlg d1(IDD_DLTEST1);
d1.DoModal();
}
Last edited by shabbir; 15Nov2006 at 11:14.. Reason: Code formating. |
|
Go4Expert Founder
|
![]() |
| 15Nov2006,11:14 | #4 |
|
Because you are not calling that function.
|
|
Light Poster
|
|
| 15Nov2006,19:54 | #5 |
|
This is my code. Help me
Code:
#include<afxwin.h>
#include<afxext.h>
#include"resource.h"
//////////////////////////////////////////////////////////////////////////////////////////////
class CD : public CDocument
{
DECLARE_DYNCREATE( CD )
public:
CD():CDocument()
{
}
};
IMPLEMENT_DYNCREATE( CD, CDocument )
//////////////////////////////////////////////////////////////////////////////////////////////
class CV : public CView
{
DECLARE_DYNCREATE( CV )
public:
void OnDraw(CDC* pDC)
{
}
};
IMPLEMENT_DYNCREATE( CV, CView )
class Dlg : public CDialog
{
public:
Dlg(UINT id):CDialog(id){}
BOOL OnInitDialog()
{
CListBox wndListBox;
wndListBox.Attach (GetDlgItem (IDC_LIST1)->m_hWnd);
wndListBox.AddString (_T ("One"));
wndListBox.AddString (_T ("Two"));
wndListBox.AddString (_T ("Three"));
wndListBox.Detach ();
return true;
}
void CallDialog()
{
Dlg d1(IDD_DLTEST1);
d1.DoModal();
}
DECLARE_MESSAGE_MAP()
};
BEGIN_MESSAGE_MAP(Dlg,CDialog)
ON_COMMAND(IDOK, CallDialog)
END_MESSAGE_MAP()
class CS : public CFrameWnd
{
DECLARE_DYNCREATE( CS )
CToolBar tb;
CStatusBar sb;
public:
void OnCreate(LPCREATESTRUCT cs)
{
CFrameWnd::OnCreate(cs);
sb.Create(this);
tb.Create(this);
tb.LoadToolBar(IDR_MNTB);
tb.EnableDocking( CBRS_ALIGN_ANY );
EnableDocking( CBRS_ALIGN_ANY );
DockControlBar( &tb );
}
BOOL CS::PreCreateWindow(CREATESTRUCT& cs)
{
}
DECLARE_MESSAGE_MAP()
};
IMPLEMENT_DYNCREATE( CS, CFrameWnd )
BEGIN_MESSAGE_MAP( CS, CFrameWnd )
ON_WM_CREATE()
END_MESSAGE_MAP()
//////////////////////////////////////////////////////////////////////////////////////////////
class CT : public CWinApp
{
public:
BOOL InitInstance()
{
CSingleDocTemplate *pd = new CSingleDocTemplate(
IDR_MNTB,
RUNTIME_CLASS( CD ),
RUNTIME_CLASS( CS ),
RUNTIME_CLASS( CV ));
AddDocTemplate(pd);
CCommandLineInfo cf;
ParseCommandLine(cf);
if (!ProcessShellCommand(cf)) return false;
return true;
}
DECLARE_MESSAGE_MAP()
};
BEGIN_MESSAGE_MAP(CT,CWinApp)
ON_COMMAND( ID_EXIT, CWinApp::CloseAllDocuments)
END_MESSAGE_MAP()
//////////////////////////////////////////////////////////////////////////////////////////////
CT a;
|
|
Go4Expert Founder
|
![]() |
| 16Nov2006,08:22 | #6 |
|
We normally dont do this
ON_COMMAND(IDOK, CallDialog) but we override the OnOK but that should not be the cause of the problem. You are treating IDOK as a normal button and call dialog should be called. Is it that CallDialog is not getting called then follow this steps Make a dialog based MFC exe application Copy the following line in the message map ON_COMMAND(IDOK, CallDialog) Now add the CallDialog function in .h as follows afx_msg void CallDialog(); I think this should do the job Thanks Shabbir |
|
Light Poster
|
|
| 17Nov2006,15:38 | #7 |
|
I don't know much about .h, In the situation, Could you show content of .h file? thanks
|
|
Go4Expert Founder
|
![]() |
| 17Nov2006,18:20 | #8 |
|
Opening the file on your system will show you the content.
|

