[c] Gadget-Posion im Windows-Fenster - Hilfe

Endurion hat gesagt.:
Dann nicht vergessen, das Platform SDK zu ziehen (für reine Win32 Anwendungen) benötigst du das noch.

Damit der Win32-Projekt-Wizard aktiviert wird, muss man nach Microsoft das machen:

"In Visual C++ Express, the Win32 Windows Application type is disabled in the Win32 Application Wizard. To enable that type, you need to edit the file AppSettings.htm file located in the folder “%ProgramFiles%\Microsoft Visual Studio 8\VC\VCWizards\AppWiz\Generic\Application\html\1033\".

In a text editor comment out lines 441 - 444 by putting a // in front of them as shown here:

// WIN_APP.disabled = true;
// WIN_APP_LABEL.disabled = true;
// DLL_APP.disabled = true;
// DLL_APP_LABEL.disabled = true;

Save and close the file and open Visual C++ Express. "

Habe ich gemacht mit der Aktivierung. SDK hmm war das nicht bei der Installion mit Bei? oder muss ich mir das Extra saugen? Ich habe übrigens noch nicht rausgefunden, wie ich eine GUI erstellen, das heist das Formfenster ist zwar offen aber ich finden keine Leiste mit den nötigen GUI-Elementen :( Wo sind sind die? Achja ist ein Form-Fenster immer ein statisches Fenster, also kann die Größe nicht verändert werden? Ich möchte wie auf dem Amiga Fenster programmieren die sich in der Größe beliebig verändern lassen und sich die Gadgets z.B: der neuen Breite anpassen. Ich Hasse Fenster die sich nicht verändern lassen.
 
Hi,1

ich habe wieder ein Problem, diesmal mit GetClientRect(hwnd,lpRect) wenn diese Funktion aufgerufen wird gibt es einen Absturz des Programmes, gestern noch hat es Funktioniert aber heute nicht mehr seit dem ich ein Gadget hinzugefügt habe. Inzwischen seit heute morgen ist auch der Code ganz anders als gestern, ich habe Sachen hinzugefügt und geändert. Den Absturz erstmal Ingoriert

Der Handler selber scheint OK zu sein den, der Text wird mit TextOut ausgegeben, ich steige einfach nich dahinter was falsch sein könnte an den GetClientRect(hwnd,lpRect) aufruf. Wenn ich die Zeile Auskommentiere funktioniert das Programm so wie es soll. Nur ich brauche die Ausmaße des Fensters damit die GUI richrig berechnet werden kann. Im Moment habe ich die Länge und Breite vorgegeben

Code:
 #define GUIABSTAND (10)
void SetGUI(UINT msg){
   LPRECT lpRect;
   HDC hdc;
   PAINTSTRUCT ps;
   int guiwidth,feldstrlen,guix,cxchar,cychar,w,h,guiprefsy,guitextx;
   
   //if(GetClientRect(hwnd,lpRect))
      {
      cychar = HIWORD(GetDialogBaseUnits()) + 4;
      cxchar = LOWORD(GetDialogBaseUnits());
      w = 400; //lpRect->right - lpRect->left;
      h = 300; //lpRect->bottom - lpRect->top - (cychar * 3);
      feldstrlen = strlen(cszFeld_Prefs)-1;
      guitextx   = GUIABSTAND;
      guix       = guitextx + (feldstrlen * cxchar);
      guiwidth   = w - guix - GUIABSTAND;
      guiprefsy  = h; 
      
      switch(msg){
         case WM_SIZE:  
               MoveWindow(hwndEdit  ,         0,          0,                 w,h-cychar - 8,TRUE);
               MoveWindow(hwndStatus,GUIABSTAND, h-cychar-4, w-(GUIABSTAND*2),      cychar,TRUE);
               MoveWindow(hwndPrefs ,      guix,  guiprefsy,          guiwidth,      cychar,TRUE);
               break;
         case WM_PAINT:
               hdc = BeginPaint(hwnd,&ps);
               TextOut(hdc,guitextx,guiprefsy+2,cszFeld_Prefs,strlen(cszFeld_Prefs));
               break;
         default:     
         Beep(750,750); 
      }
    }
}

No ne Frage: Wie bekomme ich den Hintergrund des Textes "Einstellung:" in die Fenster hintergrundfarbe?
 

Anhänge

  • SN-Listdatei_Forum.png
    SN-Listdatei_Forum.png
    12,4 KB · Aufrufe: 25
Cusco hat gesagt.:
Hi,1
Code:
   LPRECT lpRect;

if(GetClientRect(hwnd,lpRect))

Du solltest mal nachlesen was bestimmte Datentypen bedeuten bevor Du sie benutzt. LPRECT ist z.B. das gleiche wie RECT *. Wobei Kleinweich grundsätzlich bei Zeigertypen ein LP voranstellt, steht halt für Long Pointer.

Tja, und was passiert wohl wenn man einen nicht initialisierten Zeiger benutzt?
 
Ah Danke :) Das mit dem LP Muss ich mir Merken :) Jetzt klappt das ganze bisherige Programm :)

Jetzt bleibt nur noch das Problem mit der Hintergrund Farbe, aber ich schaue mir gleich mal die PAINT-Struktur an, ich schätze darüber kann das eingestellt werden irgendwie.
 

Neue Beiträge

Zurück