begin process at 2012 05 28 05:27:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

API

 > 

Affichage avec API Windows


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Affichage avec API Windows

lundi 6 décembre 2004 à 01:02:45 | Affichage avec API Windows

PunkDude424

Bon j'ai un problème avec l'affichage à l'aide de L'api win32

Je suis débutant en la matière et j'ai le problème suivant.

J'ai une application client serveur....

voici le main de l'application....je cherche a créé une fenetre dans le main...et jai une class clientDlg qui hérite de client et je voudrais quelle crée une fenetre child quelle va mettre dans le fenetre principal

voici le code
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static TCHAR szAppName[] = TEXT("ClientServeurMail");
HWND hwnd;
MSG msg;
WNDCLASS wndclass ;
instance = hInstance;

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

if (!RegisterClass (&wndclass))
{
MessageBox (NULL, TEXT ("Ce programme nécessite Windows NT !"),
szAppName, MB_ICONERROR) ;
return 0 ;
}

hwnd = CreateWindow (szAppName, // nom de la classe
TEXT ("Client Mail"), // titre de la fenêtre
WS_OVERLAPPEDWINDOW, // style de la fenêtre
CW_USEDEFAULT, // position initiale en x
CW_USEDEFAULT, // position initiale en y
M_WNDWIDTH, // largeur initiale
M_WNDHEIGHT, // hauteur initiale
NULL, // handle de la fenêtre mère
NULL, // handle du menu de la fenêtre
hInstance, // handle de l'instance
NULL) ; // paramètres de création

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)
{
switch (message)
{
case WM_CREATE :
{
clientDlg = new CClientPopDlg(hwnd, M_WNDWIDTH/2, M_WNDHEIGHT, 0, 0, instance);
return 0 ;
}
case WM_DESTROY :
{
PostQuitMessage(0) ;
return 0 ;
}
case WM_SETFONT:
return 0;
}
return DefWindowProc (hwnd, message, wParam, lParam) ;
}

et voici le constructeur de ClientDlg

CClientPopDlg::CClientPopDlg(HWND hwndParent, int width, int height, int posX, int posY, HINSTANCE hInstance)
: CClientPop("pop.videotron.ca", "vlgplffe", "verbatim")
{
hwndP = hwndParent;
WNDCLASS wndclass ;
TCHAR szAppName[] = TEXT("CLIENTDLG");

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

if(!RegisterClass(&wndclass))
return;

hwnd = CreateWindow (szAppName, // nom de la classe
"", // titre de la fenêtre
WS_CHILD, // style de la fenêtre
posX, // position initiale en x
posY, // position initiale en y
width, // largeur initiale
height, // hauteur initiale
hwndP, // handle de la fenêtre mère
(HMENU)ID_EDITBOX, // handle du menu de la fenêtre
hInstance, // handle de l'instance
NULL) ; // paramètres de création

ShowWindow (hwnd, SW_SHOW) ;
UpdateWindow (hwnd) ;
}


Je souhaiterais que mon application crée une fenetre et que clientDlg soit un editbox pour pouvoir écrire certaine information que la classe client retourne.....mais je voudrais avoir une WindowProc pour le main et un windowproc pour clientdlg.....je ne veux pas tout traiter dans le main.....quelquun peut maider?? je suis completement melé!!

Merci!!!!
lundi 6 décembre 2004 à 11:14:13 | Re : Affichage avec API Windows

racpp

Administrateur CodeS-SourceS
Salut,
Pour ajouter un editbox à ta fenêtre tu n'as pas besoin de tout cela. Il suffit de créer un EDIT avec la fonction CreateWindow pendant le traitement du message WM_CREATE:
HWND hEdit;
hEdit=CreateWindow(EDIT,0,WS_CHILD | WS_VISIBLE ,posx,posy,largeur,hauteur,hwndParent,0,0,0);

hwndParent est le HWND de la fenêtre mère
Tu manipuleras cet editbox grâce à son HWND hEdit. Pour le multiligne tu ajoutes le style ES_MULTILINE, pour la touche ENTREE tu ajoutes ES_WANTRETURN. J'espère que cela correspond à ce que tu cherches.
lundi 6 décembre 2004 à 11:36:22 | Re : Affichage avec API Windows

racpp

Administrateur CodeS-SourceS
Pourquoi tu ne veux pas tout mettre dans WindowProc? C'est plutôt pratique.
lundi 6 décembre 2004 à 18:29:10 | Re : Affichage avec API Windows

PunkDude424

Ben comme tu me le ditje sais que sa fonctionne mnais justement tout est dans le windowproc du main...et je ne veux pas cela pcq sa deviens trop chargé....avoir un windowproc avec plein de switch et de if ....j'aimerais mieux séparé le traitement.....
lundi 6 décembre 2004 à 18:58:01 | Re : Affichage avec API Windows

PunkDude424

...pour pouvoir avoir un code plus réutilisable et pouvoir ajouter "clientDlg" dans nimporte quelle application sans tout recoder opur le traitement
mardi 7 décembre 2004 à 19:20:54 | Re : Affichage avec API Windows

PunkDude424

personne peut maider ????


Cette discussion est classée dans : fenêtre, hwnd, hinstance, initiale, wndclass


Répondre à ce message

Sujets en rapport avec ce message

erreur(vc++6) [ par greg4 ] Linking...LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _mainDebug/fen.exe : fatal error LNK1120: 1 unresolved externalsError execut pb avec le plein écran de DirectX que je veux enlever [ par Diabolus ] Bonjour à tous !Je souhaiterai créer une fenêtre en mode normal et tout ce que j'arrive à faire c'est du plein écran. J'aimerai enlever le plein écran dev sans MFC [ par c2millet ] Voilà j'essaie de faire un prog sans MFC et je voudrais changer la couleur de text d'un bouton ainsi que ça couleur de fond.Si qqun peu m'aider mercim keyboard [ par ToToL ] J'ai créé un programme sauf que mon probleme est la vitesse de repetition des touche que je voudrai faire instantanné car sinon j'ai il y a un "blanc" Comment créer un Bouton [ par new0staff ] Bonjour!Le programme ci-dessous crée et affiche une fenêtre simple. Ce que je souhaite faire, c'est rajouter un Bouton à cette fenêtre.Ce qui ne joue bmp dans static [ par Arnaud16022 ] bonjourvoila je veux mettre un bmp dans un static.dans le fichier rc ya:SniperImg BITMAP "C:/sniper.bmp"et dans le main ya (en simplifie)#include LRES WIN32 Dev-cpp: Le bouton refuse d'afficher le bitmap [ par gekkko ] Bonjour!Je n'arrive pas à faire afficher un bitmap sur un bouton CreateWindow.Le bitmap se charge pourtant bien puisque le .EXE grossit.La compilation problème fenêtre cliente [ par raoulman ] Bonjour,J'ai un petit souci avec une fenêtre cliente et WM_PAINT, je m'explique.Aujourd'hui, j'ai une fenêtre qui contient une fenêtre cliente dedans. Erreur incompréhensible et insoluble pour moi.... [ par jb60 ] Voilà, je vais inscrire le source que j'ai tapé (une partie du source plutôt). J'ai l'impression que tout est correct, mais le compilo me fait une err Couleur de fenêtre [ par CyberP ] Comment changer la couleur d'arrière plan d'une fenêtre après l'avoir créée ?PAINTSTRUCT pps;HDC hdc;hdc = BeginPaint(hWnd, &pps);SelectObject(hdc, Cr


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,217 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales