몇 대의 컴퓨터 컴퓨터에서 (대부분의 경우 괜찮음) 트리 컨트롤에 항목을 추가 할 때 어떤 이유로 TreeView_InsertItem
은 NULL
(Indicating something went wrong)을 반환합니다. . 불행하게도 MSDN 사이트 GetLastError를 호출 단순히 나를 알 수없는 오류 코드가 참으로 설정 (그리고되도록 지정하지 않습니다. 0 = The operation completed successfully
나도이 일을 처리 할 수있는 고장이나 방법을 일으킬 수 지정할 않습니다 그래서TreeView_InsertItem이 실패하게되는 원인은 무엇입니까?
. '사람이 전에이 발생하거나 문제를 디버깅하는 방법에 관한 어떤 제안을 가지고있는 경우 기계가 모두 면책 조항 윈도우 7
을 실행하는 궁금
을 M : 실제로 wxWidgets
을 통해 갈거야,하지만 우리는 코드를 파헤 치고 창문에 문제가있는 것 같습니다. api
수준이 아니며 wx
그 자체가 아닙니다.
업데이트 : 기본적 아이디어는, 당신은이 클래스에서 상속 한 다음 단순히 AddItem()
를 호출 채우기를 구현합니다. 또한 루트 항목을 지정하기위한 AddItem()
의 버전이 있지만 처음 전화가 Append()
에 연결되지 않아 그 존재가 도움이되지 않습니다. 나무는 다음과 같은 플래그와 wxFormBuilder
에서 생성됩니다 wxTR_DEFAULT_STYLE, wxTR_HAS_BUTTONS, wxTR_HIDE_ROOT, wxTR_LINES_AT_ROOT, wxTR_SINGLE
이
이것은 또한 내 자신의 PC
ItemSelector::ItemSelector(wxWindow* parent)
: m_tree(NULL),
m_initialised(false)
{
wxXmlResource::Get()->LoadFrame(this, parent, wxT("ItemSelector"));
m_tree = XRCCTRL(*this, "itemTree", wxTreeCtrl);
m_rootItem = m_tree->AddRoot(wxT("ROOT"));
Bind(wxEVT_SHOW, &ItemSelector::OnShow, this);
MakeModal(true);
}
void ItemSelector::OnShow(wxShowEvent& event)
{
if(event.IsShown())
{
if(!m_initialised)
{
Populate();
m_initialised = true;
}
m_tree->SetFocus();
Layout();
}
}
void ItemSelector::AddItem(const wxString& name, void* someData)
{
//Also tried m_tree->AppendItem(m_rootItem, wxT("Test")) - same problem
wxTreeItemId newItem = m_tree->AppendItem(m_rootItem, name, -1, -1, new TreeDataClass(someData));
}
에 대해 정확하게하는
[wxEVT_INIT_DIALOG][1]
이벤트를 가지고 있기 때문에난 당신이 코드를 표시 할 수 있습니다,이 알려진 문제가 될 수 있어야한다는 것을 발견했다? –
모든 TreeView_InsertItem은 (실제로, 통해) 컨트롤에 메시지를 보냅니다. 컨트롤을 나타내는 창 핸들을 중심으로 대부분 상태가 잘못 될 수있는 많은 것들이 있습니다. 코드 = 불가사의. 보여주십시오. – WhozCraig
코드 –