Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

C++ WinAPI Int <-> string

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Windows-spezifische Fragen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
c.m.obrecht



Anmeldungsdatum: 09.03.2006
Beiträge: 377
Wohnort: Hofstetten SO, CH

BeitragVerfasst am: 03.06.2007, 00:24    Titel: C++ WinAPI Int <-> string Antworten mit Zitat

Blöde Frage lächeln Wollte eigentlich nur im Borland C++ mittels WinAPI testen ob der Inline Assembler auch so funktioniert (bei .NET geht das ja nicht). Dazu - und auch um etwas mit WinAPI zu üben und nicht nur leere Fenster zu erzeugen bzw. nur mit Text - dachte ich ich mache 2 Edits und lasse mittels ASM zwei Zahlen addieren z.B.; nun, kenne von ASM unter DOS die Umrechenfunktion von BCD -> ASCII; wie geht das hier? Habe eine Funktion aber komme damit gar nicht zurecht, das Blöde; wo/wie macht man Deklarationen? Am Anfang des Programmcodes klappte es nicht; kenne das nur vom C mit Konsole so wirklich und der String muss dort ja noch separat eingebunden werden...
Habe diverse Versuche, welche das Programm entweder gar nicht kompilieren liessen oder gleich abstürzen auskommentiert und mit !!!!! versehen.
Code:

#include <windows.h>
#include <stdio.h>
#include <stdlib.h>




LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    PSTR szCmdLine, int iCmdShow)


{
    HWND     hWnd;
    MSG      msg;
    WNDCLASS wc;


    const char szAppName[] = "Editcontrol Tutorial";

    wc.style          = CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc    = WndProc;
    wc.cbClsExtra     = 0;
    wc.cbWndExtra     = 0;
    wc.hInstance      = hInstance;
    wc.hIcon          = LoadIcon(NULL, IDI_APPLICATION);
    wc.hCursor        = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground  = (HBRUSH)GetStockObject(LTGRAY_BRUSH);
    wc.lpszMenuName   = NULL;
    wc.lpszClassName  = szAppName;

    RegisterClass(&wc);

    hWnd = CreateWindow( szAppName,
                         "Editcontrol Tutorial",
                         WS_OVERLAPPEDWINDOW,
                         CW_USEDEFAULT,
                         CW_USEDEFAULT,
                         CW_USEDEFAULT,
                         CW_USEDEFAULT,
                         NULL,
                         NULL,
                         hInstance,
                         NULL );

    ShowWindow(hWnd, iCmdShow);
    UpdateWindow(hWnd);

    while(GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

    return msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)


{
  static HWND hEdit;
static HWND hEdit2;
static HWND hButton;


switch (message)


   {int a;
   //char *buffer = malloc( sizeof(char) * 20 ); !!!!!!!!!!!
     case WM_CREATE:
       {

 char *buffer2 = NULL;
char *buffer = NULL;
           hEdit = CreateWindowEx(WS_EX_CLIENTEDGE,
                                             "edit",
                                             buffer,    // <- das ist der Inhalt der Editfelds
                                             WS_CHILD | WS_VISIBLE | WS_VSCROLL | ES_MULTILINE |
                                                        ES_AUTOVSCROLL,
                                             0, 0, 0, 0, //Koordinaten anstelle MoveWindow
                                             hWnd,
                                             NULL,
                                             ((LPCREATESTRUCT) lParam) -> hInstance,
                                             NULL);


                                          //  a = atoi( buffer );  !!!!!!!!


                      //free(buffer);


                      hEdit2 = CreateWindowEx(WS_EX_CLIENTEDGE,
                                            "edit",
                                            buffer2,    // <- das ist der Inhalt der Editfelds
                                            WS_CHILD | WS_VISIBLE | WS_VSCROLL | ES_MULTILINE |
                                                       ES_AUTOVSCROLL,
                                            0, 0, 0, 0,
                                            hWnd,
                                            NULL,
                                            ((LPCREATESTRUCT) lParam) -> hInstance,
                                            NULL);



                     free(buffer2);

hButton = CreateWindow(  "button",
                                  "los",
                                  WS_CHILD | WS_VISIBLE,
                                  0, 0, 0, 0,
                                  hWnd,
                                  NULL,
                                  ((LPCREATESTRUCT) lParam) -> hInstance,
                                  NULL);



                     return 0;

       }
                      case WM_SIZE:
        {

          MoveWindow(hEdit, 0, 0, 90, 20, TRUE);
          MoveWindow(hEdit2, 100, 100, 90, 20, TRUE);
          MoveWindow(hButton, LOWORD(lParam) / 2 - 80, HIWORD(lParam) - 30,
                                                           160, 22, TRUE);

            return 0;
        }

case WM_COMMAND:
      {
         if (lParam == (LPARAM)hButton)
         {
            if (HIWORD(wParam) == BN_CLICKED)

              MessageBox (0, "Hoi", ":D", 64);
               return 0;
         }
 return 0;
      }

     case WM_DESTROY:
      {
         PostQuitMessage(0);
         return 0;
      }
   }

return DefWindowProc(hWnd, message, wParam, lParam);
}
//atoi(LPCSTR string) oder _wtoi(LPCWSTR string) oder besser: _ttoi(LPCTSTR string)
//String in Zahl


_________________
...längre blomstre gamle nord...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Elektronix



Anmeldungsdatum: 29.06.2006
Beiträge: 742

BeitragVerfasst am: 04.06.2007, 10:26    Titel: Antworten mit Zitat

Solche Fragen über C solltest Du besser da posten:
http://www.c-plusplus.de/forum/

Da wirst Du geholfen! zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
c.m.obrecht



Anmeldungsdatum: 09.03.2006
Beiträge: 377
Wohnort: Hofstetten SO, CH

BeitragVerfasst am: 06.06.2007, 12:23    Titel: Antworten mit Zitat

danke lächeln Dort hatte ich eben den Tip bekommen mit der Funktion; aber nicht wie man das genauer anwendet (die meinen ich sei in C besser als ich bin grinsen )
_________________
...längre blomstre gamle nord...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Windows-spezifische Fragen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz