Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Fragen über alles Part Iii

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
21.05.2003, 12:13 Uhr
Oliver
S2-Pixelgeneral


Hi,

ich hätte da noch ein paar Fragen, wenns euch nichts ausmacht .

I.) Brauchen die MFC eine irgendeine DLL oder ähnliches? Also wenn ich jetzt einen Verwandten oder einen Freund ein Programm schicken will, muss ich da eine DLL mitgeben?

II.) Ich hab ja schon die Frage gestellt, aber es hat ja keiner drauf geantwortet. Wie kann mit der API programmieren??? Muss ich da bei Projektauswahl "Win 32 Anwendung" wählen? Und was würdet ihr mir empfehlen?

III.) Und ist es schwierig Sound in eine MFC Anwendung zu bringen? Weil davon nichts in meinem Buch steht (VC++ in 21 Tagen).


Ich glaube das war erstmal, wenn mir noch was einfällt, frag ichs noch.

PS: Ich meine Part 3, konnt ich nicht mehr ändern.
--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )

Dieser Post wurde am 21.05.2003 um 12:15 Uhr von Oliver Müller editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
21.05.2003, 13:20 Uhr
Alf



Hy!

Zu I.:

Ja! Es sei den du kannst deinem Compiler anweisen alles Statisch zu Linken. Meiner ist dazu leider nicht in der Lage.

Doch welche Dll´s kommt drauf an was du machst. Es wird z.B. unterschieden ob du als Debug oder Release Kompilierst. Immer gut wenn du einen Zweiten PC hast auf dem nur die Standart DLL´s von Windows installiert sind.

Zu II. :


C++:
#include <windows.h>

bool bBeenden;
int iLinksOben_x, iLinksOben_y, iRechtsUnten_x, iRechtsUnten_y;


int WINAPI WinMain(HINSTANCE hinst, HINSTANCE hprevinst,LPSTR lpcmdline, int ncmdshow)
{

WNDCLASSEX    Winclass;        //Struct für Eigenschaften des Fensters

Winclass.cbSize             = sizeof(WNDCLASSEX);
Winclass.style              = CS_HREDRAW | CS_VREDRAW;

//Name der Call Back Funktion
Winclass.lpfnWndProc        = WindowProc;
Winclass.cbClsExtra         = 0;
Winclass.cbWndExtra         = 0;
Winclass.hInstance          = hinst;
Winclass.hIcon              = LoadIcon(NULL, IDI_APPLICATION);
Winclass.hCursor            = LoadCursor(NULL, IDC_ARROW);

//Hintergrund Farbe
Winclass.hbrBackground         = NULL;
Winclass.lpszMenuName       = NULL;
Winclass.lpszClassName         = „Klassenname“;
Winclass.hIconSm            = LoadIcon(NULL, IDI_APPLICATION);

// Fenster bei Windows registrieren
if(!RegisterClassEx(&Winclass))return 1;

// Dann erstellen des eigentlichen Fensters
if(!(hwnd = CreateWindowEx(NULL, “Klassenname”, “Windows_Titel”,
WS_POPUPWINDOW | WS_VISIBLE, iLinksOben_x, iLinksOben_y, iRechtsUnten_x, iRechtsUnten_y,
NULL, NULL, hinst, NULL)))return 2;

bBeenden= FALSE;

while(!bBeenden)
{

// Verarbeitung neuer Nachrichten
while(GetMessage(&Message, NULL, 0, 0, PM_REMOVE))
//GetMessage auf Windows Nachrichten warten
{
TranslateMessage(&Message);
DispatchMessage(&Message);
} // GetMessage
}// while(!bBeenden)
}//WinMain

LRESULT CALLBACK WindowProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)
{
    switch(message)
    {
        case WM_KEYDOWN
switch(wparam)
            {
                case VK_ESCAPE:        //ESC zum beenden!
                {
                    //...dann Beenden Nachricht posten!
                    PostMessage(hwnd, WM_CLOSE, 0, 0);
                    return 0;
                    break;
                }
                break;
            }
        case WM_DESTROY:
        {
            bBeenden = 1;
            PostQuitMessage(0);
            return 0;
            break;
        }
        break;
    } // switch
    return(DefWindowProc(hwnd, message, wparam, lparam));
} // WindowProc


So könnte ein Prog. Aussehen, musst du halt noch anpassen. Und iLinksOben_x, iLinksOben_y, iRechtsUnten_x, iRechtsUnten_y werte zu weisen.

Zu III. :
Weis nicht...
--
Mfg

Andy
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
25.05.2003, 08:38 Uhr
Oliver
S2-Pixelgeneral


I. Und wo kann man das einstellen?

II. Ich glaube ich programmiere doch lieber mit MFC. Das API Zeug sieht mir erstmal zu kompliziert aus.

Ich hab da noch ne Frage:

Wie kann man von Steuelementen die Hintergrundfarbe einstellen, aber wirklich die Hintergrundfarbe!

Nicht so hier:


Code:
...OnCtlColor (...)
{  
       pDC->SetBkColor(..);
...
}



Das nützt mir nicht sehr viel, denn da wird nur der Hintergrund vom Text gefärbt. Ich will aber alles gefärbt haben. (z.B. ein blaues Listenfeld)

Und dann noch eine Farbe zu den "Farbspielereien":

Wie kann ich abfragen welches Steuerelement die Methode OnCtlColor ausgelößt hat?

Und wenn ich den Hintergrund vom Fenster ändern will, zeichne ich immer ein Rechteck der entsprechenden Farbe über das ganze Fenster.

Dann lass ich die Steuerelemente sich neu zeichnen (m_x.Invilidate oder so ähnlich).

Das Problem ist nur dass ich für jedes Steuerlement eine Controlvariable machen muss, nur um sie zu zeichnen. Geht das auch anders?

Danke Oli
--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
25.05.2003, 12:39 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Hi Olli,

zu I)
Projekt->Settings
Auf den Tab Generals

auf "Use Mfc in a static Library" einstellen

Gruss Heiko

Ach so wie das mit dem Sound geht wurde schon öfter gefragt musst du mal nach alten posts in dem forum suchen
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 25.05.2003 um 12:41 Uhr von Heiko editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
25.05.2003, 12:51 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


genauso wie das OnCtlColor
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
25.05.2003, 13:42 Uhr
Oliver
S2-Pixelgeneral


Ok, geht nicht.

Ich hab auch nur die Autorenedition.
Ich will mit demnächst aber mal einen richtigen Compiler anschaffen.
Kennt ihr welche, wo das geht?

Danke Oli
--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
25.05.2003, 16:17 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


ja VC++ Pro oder höher (oder eben VC++.Net da gehts glaub ich überall)
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
25.05.2003, 16:53 Uhr
~Spacelord
Gast


Mal abgesehen davon das die MFC42.dll ohnehin auf fast allen Rechnern vorhanden ist,ist es doch kein Problem die Dll mitzuliefern.
Sich nur für das statische Linken ne Professional Version zu organisieren ist unnötig und wird dein Taschengeld auch arg strapazieren!

MfG Spacelord
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
25.05.2003, 21:01 Uhr
Alf



Hy!

@Spacelord

Ich habe VC++ 5.0 und meine Prog´s akzeptieren z.B. die MFC42D.dll (D für Debug) von VC++ 6.0 nicht. Als da ist Vorsicht geboten.

@Oliver Müller

Wie gesagt, ich teste meine Prog´s immer auf nem Rechner der nur die Sandart DLL´s enthält und Kopiere dann die DLL´s darauf, die er mir Anzeigt, bis das Läuft.
--
Mfg

Andy
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


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: