string nach char
-
* habe die überflüssigen return weggemacht
-
Du hast scheinbar ka was du da überhaupt machst ... naja
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { PAINTSTRUCT ps; switch (message) { case WM_PAINT: { HDC hDC = BeginPaint (hwnd, &ps); RECT rect_client; GetClientRect (hwnd, &rect_client); std::ifstream file_stream("C:\\Roulettscore.sc", std::ios::in); if (file_stream.is_open() == true || file_stream.good() == true) { char item[2] = { ' ', '\0' }; while(file_stream.get(item[0])) DrawText (hdc, item, -1, &rect, DT_SINGLELINE); file_stream.close(); } EndPaint (hwnd, &ps); return 0; } case WM_DESTROY: PostQuitMessage(0); return 0; } return DefWindowProc(hwnd, message, wParam, lParam); }...
-
Es stimmt schon dass ich mich nicht "so gut" auf das auslesen von dateien verstehe aber dein Quelltext gibt auch immer nur das letzte Zeichen der Datei aus.
-
nöö ... das war ja klar das du wirklich ka hast ^^ dein Problem ist einfach das du jedes Zeichen wieder überschreibst ... warum holst du dir nicht einfach den kompletten content in EINEN String und zeichnest das dann mit DrawString?
-
Ich werde es versuchen (bin noch Anfänger und habe noch nichts von DrawString gewusst) trotzdem schonmal vielen Dank für deine Gedult

-
Sorry das ding heißt auch DrawText ... hab mich vertan ...
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { PAINTSTRUCT ps; switch (message) { case WM_PAINT: { HDC hDC = BeginPaint (hwnd, &ps); RECT rect_client; GetClientRect (hwnd, &rect_client); std::ifstream file_stream("C:\\Roulettscore.sc", std::ios::in); std::string string_content; std::string string_in; if (file_stream.is_open() == true || file_stream.good() == true) { while (file_stream.eof() == false) { std::getline(file_stream, string_in); string_content += string_in; } DrawText(hDC, string_content.c_str(), string_content.length(), &rect, DT_SINGLELINE); file_stream.close(); } EndPaint (hwnd, &ps); return 0; } case WM_DESTROY: PostQuitMessage(0); return 0; } return DefWindowProc(hwnd, message, wParam, lParam); }... so bekommst de den Dateiinhalt ...
-
ich werde es aufs neue versuchen (aber es gibt auch DrawString -> habe ich bei microsoft gefunden; sogar 4 verschiedene Varianten)
-
noha schrieb:
Ich bin noch neuling im Bereich Windowsprogrammierung [...irgend ne simple Frage...]
Glaubst du es ist wirklich sinnvoll, sich mit einer komplizierten, unsauberen API rumzuschlagen, wenn man noch nicht mal die Grundlagen von C++ beherrscht? ...
-
Das programm lässt sich jetzt ohne Probleme kompilieren (nach 3 winzigen Änderungen) allerding bekomme ich nur sowas auf den Bildschirm:
||||||||||o||||||||q|||liegt das am Problem Unicode - Ansi ??
(gemachte Änderungen: std:: vor getline weg, headerdatei eibinden und
string_content.c_str() wird (LPCWSTR)string_content.c_str()anders ließ es sich nichtmal kompilieren
-
hmm achso hast de UNICODE an? dann machs anders:
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { PAINTSTRUCT ps; switch (message) { case WM_PAINT: { HDC hDC = BeginPaint (hwnd, &ps); RECT rect_client; GetClientRect (hwnd, &rect_client); std::wifstream file_stream(L"C:\\Roulettscore.sc", std::ios::in); std::wstring string_content; std::wstring string_in; if (file_stream.is_open() == true || file_stream.good() == true) { while (file_stream.eof() == false) { std::getline(file_stream, string_in); string_content += "\n"; string_content += string_in; } DrawText(hDC, string_content.c_str(), string_content.length(), &rect, DT_SINGLELINE); file_stream.close(); } EndPaint (hwnd, &ps); return 0; } case WM_DESTROY: PostQuitMessage(0); return 0; } return DefWindowProc(hwnd, message, wParam, lParam); }und vor getline gehört ein std:: ... und bei den restlichen Funktionen halt die UNICODE Variante nehmen ...
-
So das tut es, ich sehe jetzt den Inhalt (nur ohne Zeilenumbrüche, obwohl die Datei welche hat) kann man das noch ändern oder ist das wieder ein riesiges umkramen??
-
habs angepasst ...