Non rien lol
Passage->Moi ca m´interesse de savoir quel est l´utilité de renvoyer un ATOM, c´est en rapport avec la table ATOM définit par le système d´exploitation ?
Hoooooooooooo !
KARINE : Il n´y a rien de MFC dans ce code.
Mis a part un include de stdafx.h qui peut etre bougrement vite remplacé , c´est definitivement un code WIN32 pur. Le fait que cela marche est definitivement acquis. Maintenant comment cela marche est la bonne question !
chimanp : Tu n´as pas repondu aux questions de mon post precedent.
acidparadouze : Patience, chimanp n´a pas encore repondu aux questions.
Vampire6 : chimanp va se faire un plaisir de nous repondre puisqu´il a ecrit ce code. ( bon s´il seiche on verrat ce que l´on peut faire ) .
ouais fo attendre de voir ça...
Raaaaa, MFC ou pas c´est pas etonnant que chimanp ne comprenne rien a ce qu´il a copier-coller.
D´ailleur moi non plus. J´ai toujours trouver la programmation Win32 ( et MFC aussi) penible a ecrire et impossible a lire.
Allez, ces styles de programmation sont d´un autre age. Aller chimanp, prend donc un bon framework, ainsi tu pourras comprendre les programmes que tu compiles, c´est bien plus marrant.
Voici un Hello Word presque tout pareil comme ce que fait le tas de code imfame que tu as posté :
// wxhello.cpp
class MyFrame : public wxFrame
{
public:
MyFrame(wxWindow *parent,
wxWindowID id,
const wxString &);
private:
wxStaticText *m_text;
};
class MyApp : public wxApp
{
public:
bool OnInit();
private:
MyFrame *m_frame;
};
MyFrame::MyFrame(wxWindow *parent,
wxWindowID id,
const wxString &)
: wxFrame(parent, id, title)
{
m_text = new wxStaticText(this, -1, "Hello World");
}
bool MyApp::OnInit()
{
m_frame = new MyFrame(NULL, -1, "Hello!");
SetTopWindow(m_frame);
m_frame->Show(TRUE);
return TRUE;
}
IMPLEMENT_APP(MyApp)
C´est pas plus comprenable ? ??
Si c´est beaucoup plus COMPREHENSIBLE ( alala les femmes et le francais : ) je plaisante =))
1) ATOM
as-tu lu les commentaires ( classiques)
2)
HINSTANCE hInstance
C´est la donnée contenant un handle pour l´instance de notre application. Cela correspond au paramètre hInstance passé à WinMain par Windows.
HINSTANCE hPrevInstance: c´est, en gros, le paramètre hPrevInstance passé à WinMain par Windows.
Dans mon cas, Win32 comme tu le souligne, il est NULL
ces 2 éléments sont classiques pourtant
3)
Une bitmap en fond. Oui, je l´ai déjà fait.
La faire tiler, je ne sais ce que tu entends par là, mais cela doit être possible
J´ai d´ailleurs aussi déjà représenté une fausse ville qui consistait en fait à des bitmap collé les uns aux autres.
Je prècise que lors de mon dernier stage, on m´avait demandé d´encapsuler des éléments graphiques qui fonctionnent sous Windows, et d´autres sous excel ( travail facilité par l´ajout de #ifndef _Win32 [...] #endif). Le but étant d´avoir un produit qui tourne sous les 2 plateformes.
Vous pouvez explquer ce qu´il fait le dernier programme qui a été écris ? J´apprend le C++ et j´avoue que je comprend ( presque) rien au programme de KOUIC... D´autant plus qu´il n´y a aucun commentaire !
bouuh j´ai toujours pas eu d´explication pour cette variable atom renvoyée.
Vampire6 : voila l´explication puisque chimanp ne reponds pas aux question ou les eludes . ..
De ce que j´en ai compris ( si quelqu´un a mieux j´suis interressé) :
L´ATOM renvoyé par RegisterClass() est l´identifiant de ta classe.
La pluspart du temps personne ne s´en sert puisque l´on perfere utiliser la chaine de caratere designant le nom de la classe.
Par exemple :
FindWindow(SzClassName . ....)
C´est bien bo tout cela mais c´est legerement couteux question memoire. Alors pour designer directement une classe on peut passer par un objet geré par le system l´atom. Attention il existe 2 sorte d´atom ( l´entier et la string ) .
Celui le plus courament utlisé est la string.
D´ailleur le nom de ta classe est stocké sous forme d´atom String.
Par exemple tu fais :
. ..
. ..
wcex.lpszClassName = lpszClass;
. ..
. ..
Atom = RegisterClassEx(&);
GlobalGetAtomName(LOWORD ( lpszClass),Buffer, sizeof Buffer);
Et dans buffer tu retrouve la copie de ta chaine de caractere
Fin de l´exemple.
Bon finissons le sujet :
Donc notre atom ( de type entier) peu etre utiliser pour designer ta classe.
Par exemple:
GetClassInfoEx(hInst,(LPCTSTR)Atom,&)
Ce genre de truc peut etre utlisé pour verifier que 2 instance d´un meme programme ne sont pas lancée en meme temps ( au lieu de faire un bete FindWindow() )
Conclusion:
Dans 90% des cas cet atom ne sert a rien.
Chimanp ( qui semble t il maitrise totalement le pre-processing ) ne reponds pas aux questions ( precises me semble t il ) que je lui ai posé. Il nous la joue, "Ben c´est comme le porc salut c´est marqué dessus", ou "ben oui je sais faire"; ce qui me semble un tantinet soit peu leger pour quelqu´un qui en posant un source C ( Niveau Avion irakiens apres le passage des americains, c´est a dire ras des paquerettes ) voulait en foutre plein a gueule a quelqu´un. Cher chimanp, l´humilité de fait de mal a personne...
Chinamp, j´aimerais que tu reponde de maniere precise a toutes les question posées.
Vampire6 si t´as d´autres questions j´essairais d´y repondre avec mes pauvres moyens. ( Je denote chez toi un certain interet de la chose informatique ce qui me fait bien plaisir )
Voilu.
Jomeo :
Kouic nous a fait une superbe fenetre nomé "Hello" avec dedans un magnifique "Hello World".
Honnetement du commentaire y en a pas besoin pour une appli aussi "basique" ( arf, Basic en C++ ) , de plus, si t´a un bouquin, "J´apprends le C++ sous Visual" il me semble que il y a 1 chapitre entier de commentaires.....
Passage->Je te remercie pour ta réponse, qui malgré tes pauvres moyens ; ), me semble tout à fait bien approfondie.
"Je dénote chez toi un certain intérêt de la chose informatique ce qui me fait bien plaisir"
C´est un peu normal que je m´y intéresse, j´ai étudié la programmation en BTS info, mais comme on a jamais vu la programmation windows ( hormis VB) j´essaye d´apprendre un maximum.
cool
recordsman>> as-tu déjà essayé à faire du C++? Après tout, c´est plus "amusant" de faire soit mêmes son application que d´attendre après quelqu´un
chimamp>> à part l´explication sur l´Atom ( trop légère), les autres réponses me conviennent
Passage & Karine>> si si, c´est en grosse partie du MFC/Win32 ( pour preuve, les HINSTANCE)
Passage >> OK pour ton explication sur Atom ( et les différentes méthodes)
Kouic >> les MFC, c´est "chiant" et "compliqué" au début pour s´y mettre. Mais il faut s´y mettre. Au niveau graphique par exemple, si tu arrives à faire une fenêtre et capter 1 évenement , et bien le reste découle très rapidement.
Pour ceux qui ne l´ai pas reconnu, le Hello World que j´ai copier-coller ici etait une appli wxWindows. Les commentaire etait en polonais alors je les ai enlevée ; )
-Q- >> "les MFC, c´est "chiant" et "compliqué" au début pour s´y mettre. Mais il faut s´y mettre"
Non. Pourquoi?
Pour faire des appliques plus dure a coder et a maintenir qu´avec wxWindows ou GTK ou QT ou equivallent?
Pour ne programmer que sous windows ?
Arf... vous avez une drole de facon de voir la programmation. Apres tout pourquoi faire simple et portable alors que l´on peux programmer a la Microsoft.