[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