Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Fenster aktualisieren

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
20.02.2006, 15:27 Uhr
~Nighty
Gast


ich habe folgenden Code geschrieben:

Code:
LRESULT CALLBACK WndProc(HWND hWnd,UINT iMsg,
                         WPARAM wParam, LPARAM lParam)
{
   char string[255];
   HDC                hDC;                /* Handle zum Device Contex        */
   PAINTSTRUCT        ps;                    /* Speichert Zeichen Daten        */

      if (iInitUSB==1){
       int x=ulDriver.initialisiere();
       iInitUSB=2;
       initflag=1;
       RedrawWindow(hWnd,NULL,NULL,RDW_UPDATENOW) ;
   }

   switch (iMsg)
      {
         case WM_CLOSE:
            DestroyWindow(hWnd);
            break;
         case WM_DESTROY:
            PostQuitMessage(0);
            return 0;
         case WM_COMMAND:
            switch(LOWORD(wParam))
            {
                case ID_OPTIONS_STARTUSB:
                    if (iInitUSB==0)
                    iInitUSB=1;
                    LoadString(GetModuleHandle(NULL),ID_STRING_STARTUSB,
                         string,sizeof(string));
                    MessageBox(hWnd,string,
                          "Option 1",MB_ICONINFORMATION);
                break;
                case ID_OPTIONS_OPTION2:
                    if (iInitUSB==0)
                        LoadString(GetModuleHandle(NULL),ID_STRING_OPTION2_1,
                          string,sizeof(string));
                    else if (initflag==1)
                        LoadString(GetModuleHandle(NULL),ID_STRING_OPTION2_2,
                          string,sizeof(string));

                    MessageBox(hWnd,string,"LibUSB",
                         MB_ICONINFORMATION);
                    RedrawWindow(hWnd,NULL,NULL,RDW_UPDATENOW) ;

                break;
               case ID_ABOUT:
               LoadString(GetModuleHandle(NULL),ID_STRING_ABOUT,
                          string,sizeof(string));
               MessageBox(hWnd,string,"Über",MB_ICONINFORMATION);
               break;
               case ID_HELP:
               LoadString(GetModuleHandle(NULL),ID_STRING_HELP,
                          string,sizeof(string));
               MessageBox(hWnd,string,"HELP",MB_ICONINFORMATION);
               break;
               case ID_FILE_EXIT:
                  DestroyWindow(hWnd);
                  break;
         }
        break;
            case WM_PAINT:
            {
                HDC                hDC;                /* Handle zum Device Contex        */
                PAINTSTRUCT        ps;                    /* Speichert Zeichen Daten        */

            
                char szText [2];
                _itoa_s(iInitUSB,szText,2);    /* Unsere auszugebenen Strings    */
                {
                    hDC = BeginPaint(hWnd, &ps);            /* Zeichenvorgang anmelden    */
                    {
                        TextOut(hDC, 50, 50, szText, sizeof(szText)-1);
                    }
                    EndPaint(hWnd, &ps);                    /* Zeichenvorgang beendet    */
                }
                return 0;
            }

      }
   return DefWindowProc(hWnd,iMsg,wParam,lParam);
}


1. Der Text in TextOut wird nicht aktualisiert.
2. wenn ich das Fenster minimiere und wieder groß maqche schmiert mir das Ganze ab.

Ich weiß ich bin ein NOOB, aber ich habe jetzt schon im MSDN und im WINDOWS-API von Petzold nachgeschaut, und finde einfach keine Lösung.


geht es etwa nicht das Charfeld szText zu verändern?

Ratlos

Danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
21.02.2006, 08:54 Uhr
~Nightstorm
Gast


Hallo,

habe die Lösungen.

1. _itoa_s sollte man mit Intergerlänge +2 angeben -> Vorzeichen und Stringabschluß
Besser ist: sprintf_s(Char[],"%i",Int)

2. InvalidateRect(hWnd, NULL, TRUE); hilft beim aktualisieren


Gruß Peer
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: