MDI child frame and wxCheckListBox menu problem

Örjan Persson o.persson at gmail.com
Wed May 30 07:51:57 PDT 2007


I reported this as a bug (#1728376), hope that's fine.

On 5/29/07, Örjan Persson <o.persson at gmail.com> wrote:
> Hi,
>
> I'm having a problem getting a wxMDIChildFrame derived class' menu to
> beeing painted correctly. It seems that some problem occurs when
> Windows is trying to draw/measure the menu items due to an invalid
> handle.
>
> I can reproduce the problem by adding the last two lines to the
> constructor of the mdi sample project like this;
>
> MyChild::MyChild(wxMDIParentFrame *parent, const wxString& title)
>        : wxMDIChildFrame(parent, wxID_ANY, title, wxDefaultPosition,
> wxDefaultSize,
>                          wxDEFAULT_FRAME_STYLE | wxNO_FULL_REPAINT_ON_RESIZE)
> {
>     canvas = (MyCanvas *) NULL;
>     my_children.Append(this);
>
>     // this should work for MDI frames as well as for normal ones
>     SetSizeHints(100, 100);
>
>     // this triggers the measuring and font creation
>     wxCheckListBox *checkListBox = new wxCheckListBox(this, -1);
>     checkListBox->Append(L"Test");
> }
>
> The wxCheckListBox::Append() seem to trigger the .. resulting in these errors;
> 15:53:49: ..\..\src\msw\dc.cpp(1758): 'GetTextExtentPoint32()' failed
> with error 0x00000000 (the operation completed successfully.).
> 15:53:49: ..\..\src\msw\dc.cpp(1758): 'GetTextExtentPoint32()' failed
> with error 0x00000006 (the handle is invalid.).
> 15:53:49: ..\..\src\msw\dc.cpp(1758): 'GetTextExtentPoint32()' failed
> with error 0x00000006 (the handle is invalid.).
>
> If I don't use the wxCheckListbox, the menu seems to work. Anyone has any clues?
>
> Regards,
> Örjan
>




More information about the wx-users mailing list