[vtkusers] cant not creat vtkMFCWindow

Pham Sy Quy phamsyquybk at gmail.com
Wed Sep 9 19:44:42 EDT 2009


Thanks for reply,

It is main application thread (i used new prject wizard to make a dialog  
based project)
This window is create in OnInitDialog() function of my main dialog (like  
vtkDLG example)
it looks like:

-------------------------------------------------
BOOL CNoseMatchDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	//....

	CMenu* pSysMenu = GetSystemMenu(FALSE);
	if (pSysMenu != NULL)
	{
		//...some thing here
	}

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon

	CWnd* pViewWind = this->GetDlgItem(IDC_STATIC_VIEW);
	test = new vtkMFCWindow(pViewWind);

	return TRUE;  // return TRUE  unless you set the f`ocus to a control
}
---------------------------------------------------------



On Thu, 10 Sep 2009 08:09:48 +0900, John Drescher <drescherjm at gmail.com>  
wrote:

> On Wed, Sep 9, 2009 at 6:50 PM, Pham Sy Quy <phamsyquybk at gmail.com>  
> wrote:
>> Hi all,
>>
>> I have a problem with creating vtkMFCWindow object.
>> I refered to vtkDLG examples (VTKExamples/vtkDLG)and make a similar  
>> project
>> trying to
>> display vtk's ouput in an area on Dialog (use Picture Control, set
>> OnwerDraw)
>>
>> test = new vtkMFCWindow(this->GetDlgItem(IDC_STATIC_VIEW));
>>
>> here test declared as: vtkMFCWindow* ; this statement is called in
>> OnInitDialog()
>>
>> I got a runtime assert in afxwin1.inl
>>
>> _AFXWIN_INLINE HINSTANCE AFXAPI AfxGetInstanceHandle()
>>        { ASSERT(afxCurrentInstanceHandle != NULL);
>>                return afxCurrentInstanceHandle; }
>>
>> here is call stack
>>
>> mfc90d.dll!AfxGetInstanceHandle()  Line 21 + 0x20 bytes C++
>> mfc90d.dll!AfxEndDeferRegisterClass(long fToRegister=1)  Line 4509 + 0x5
>> bytes   C++
>> mfc90d.dll!CWnd::PreCreateWindow(tagCREATESTRUCTA & cs={...})  Line 733  
>> +
>> 0x7 bytes       C++
>> mfc90d.dll!CWnd::CreateEx(unsigned long dwExStyle=0, const char *
>> lpszClassName=0x00000000, const char * lpszWindowName=0x1076db08,  
>> unsigned
>> long dwStyle=1409286144, int x=0, int y=0, int nWidth=1, int nHeight=1,
>> HWND__ * hWndParent=0x00070fe8, HMENU__ * nIDorHMenu=0xffffffff, void *
>> lpParam=0x00000000)  Line 699 + 0x11 bytes      C++
>> mfc90d.dll!CWnd::Create(const char * lpszClassName=0x00000000, const  
>> char *
>> lpszWindowName=0x1076db08, unsigned long dwStyle=1409286144, const  
>> tagRECT &
>> rect={...}, CWnd * pParentWnd=0x02dd8614, unsigned int nID=4294967295,
>> CCreateContext * pContext=0x00000000)  Line 757 C++
>> vtkMFC.dll!vtkMFCWindow::vtkMFCWindow(CWnd * pcWnd=0x02dd8614)  Line 77  
>> +
>> 0x2c bytes      C++
>>
>> Did i miss something?
>> Please help!
>>
>
> Are you trying to create this window in a dll or a thread that is not
> the same as the main application thread?
>
> John


-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/



More information about the vtkusers mailing list