Join Date: Apr 2014
Posts: 4
|
Hallo ich arbeite z.Z. ein paar tut's durch und würde gerne "Deutsche" schrift in eine Fremde Anwendung Zeichnen.
Mein derzeitiger Stand: Only registered and activated users can see links.
Frage 1: Wie zuerkennen, Ein pinktes Rechteck in der linken oberen ecke, dann noch 2 Zeilen geschriebenes ( ist leider nicht deutsch, eigentlich steht da: links "Hilfe", rechts "Bitte"). Was muss ich verändern um da auch wirklich Deutsch herauszubekommen
Mein Code ausschnitt zu den Fonts:
CPP Code: const D3DCOLOR txtPink = D3DCOLOR_ARGB(255, 255, 0, 255); // Alpha, Rot, Grün, Blau const D3DCOLOR txtBlaue = D3DCOLOR_ARGB(255, 0, 0, 255); // Alpha, Rot, Grün, Blau void DrawFont (int X, int Y, D3DCOLOR Color, char *format, ...); void DrawRect (LPDIRECT3DDEVICE9 Device_t, int X, int Y, int L, int H, D3DCOLOR color); //Our font interface ID3DXFont *g_font=NULL; HRESULT __stdcall hkEndScene(LPDIRECT3DDEVICE9 pDevice) { DrawRect ( pDevice, 10, 10, 200, 200, txtPink); if ( g_font == 0 ) { D3DXCreateFont(pDevice, 14, 0, FW_NORMAL, 1, false, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, (LPCWSTR)"Arial", &g_font ); } else { DrawFont ( 20, 50, txtBlaue, "Hife" ); g_font->OnLostDevice(); g_font->OnResetDevice(); } DrawFont ( 300, 50, txtPink, "Bitte" ); return pEndScene(pDevice); } //Draw------------ void DrawRect (LPDIRECT3DDEVICE9 Device_t, int X, int Y, int L, int H, D3DCOLOR color) { D3DRECT rect = {X, Y, X+L, Y+H}; Device_t->Clear(1, &rect, D3DCLEAR_TARGET, color, 0, 0); } void DrawFont (int X, int Y, D3DCOLOR Color, char *format, ...) { //const char *fps_string; //fps_string = "a"; char buffer[256]; va_list args; // deswegen: #include <cstdio> va_start (args, format); vsprintf (buffer,format, args); RECT FontRect = { X, Y, X + 120, Y + 16 }; g_font->DrawText(NULL, //pSprite (LPCWSTR) buffer, //pString -1, //Count &FontRect, //pRect DT_NOCLIP,//Format, Color); //Color //( NULL, buffer, -1, &FontRect, DT_NOCLIP , Color ); // Zeichnen va_end (args); }
Frage 2:
Warum bekomme ich immer wieder den Fehler (in Visual Studio 2010) wenn ich bei buffer das (LPCWSTR) weg lasse:
Das Argument vom Typ ""char *"" ist mit dem Parameter vom Typ ""LPCWSTR"" inkompatibel.
Hier der Code zur Frage 2:
CPP Code: g_font->DrawText( NULL, (LPCWSTR) buffer, //<--- hier ist der Bösewicht -1, &FontRect, DT_NOCLIP, Color);
und bei
CPP Code: D3DXCreateFont( pDevice, [...] , DEFAULT_PITCH | FF_DONTCARE, "Arial", &g_font );
wird bei mir immer das "Arial" als Fehler angegeben: Das Argument vom Typ ""const char *"" ist mit dem Parameter vom Typ ""LPCWSTR"" inkompatibel.
Frage 3:
Wenn ich die Anwendung scalliere oder full Scren aktivere kommt diese Fehlermeldung: Only registered and activated users can see links.
Was kann ich tun^^
|