MFC CComboBox über JNI in JavaPanel zeichnen

swalbking

Mitglied
Hallo zusammen,
ich versuche eine CComboBox in ein JavaPanel zu zeichnen. Hier der bisherige C++-Code:
Code:
JNIEXPORT void JNICALL paint
(JNIEnv* env, jobject canvas, jobject graphics)
{
      JAWT awt;
      JAWT_DrawingSurface* ds;
      JAWT_DrawingSurfaceInfo* dsi;
      JAWT_Win32DrawingSurfaceInfo* dsi_win;
      jboolean result;
      jint lock;

      awt.version = JAWT_VERSION_1_3;
      result = JAWT_GetAWT(env, &awt);
      assert(result != JNI_FALSE);
      ds = awt.GetDrawingSurface(env, canvas);
      assert(ds != NULL);
      lock = ds->Lock(ds);
      assert((lock & JAWT_LOCK_ERROR) == 0);
      dsi = ds->GetDrawingSurfaceInfo(ds);
      dsi_win = (JAWT_Win32DrawingSurfaceInfo*)dsi->platformInfo;
   
      ////////////////////////////////
      // CComboBox zeichnen		    
      ////////////////////////////////
		CComboBox box;
		CWnd* wnd = new CWnd();
		wnd->Attach(dsi_win->hwnd);
		box.AddString("eins");
		box.AddString("zwei");
		box.Create(WS_CHILD,CRect(10, 50, 100, 150),wnd, 1);

      ds->FreeDrawingSurfaceInfo(dsi);
      ds->Unlock(ds);
      awt.FreeDrawingSurface(ds);
}

Wenn ich das Java-Programm starte bekomme ich eine Fehlermeldung
"Debug Assertion Failed". Kommentiere ich die Zeile
Code:
box.Create(WS_CHILD,CRect(10, 50, 100, 150),wnd, 1);
aus, kommt keine Fehlermeldung (aber natürlich auch keine Box).
Wenn ich statt der ComboBox einfach ein Rechteck o.ä. ins Panel zeichne, funktioniert alles.
Kann mir jemand weiterhelfen?

Gruß,
swalbking

Edit: Vielleicht ist der Thread im Teil "VisualStudio & MFC" besser aufgehoben (hab ich vohin nicht gesehen). Müsste dann mal jemand verschieben, danke!
 
Zuletzt bearbeitet:
Zurück