Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

BONJOUR À TOUS ET À TOUTES


Information sur la source

Description

PETIT HELLO
 

Source

  • // Hello.cpp : Defines the entry point for the application.
  • //
  • #include "stdafx.h"
  • #include "resource.h"
  • #define MAX_LOADSTRING 100
  • // Global Variables:
  • HINSTANCE hInst; // current instance
  • TCHAR szTitle[MAX_LOADSTRING]; // The title bar text
  • TCHAR szWindowClass[MAX_LOADSTRING]; // The title bar text
  • // Foward declarations of functions included in this code module:
  • ATOM MyRegisterClass(HINSTANCE hInstance);
  • BOOL InitInstance(HINSTANCE, int);
  • LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
  • LRESULT CALLBACK About(HWND, UINT, WPARAM, LPARAM);
  • int APIENTRY WinMain(HINSTANCE hInstance,
  • HINSTANCE hPrevInstance,
  • LPSTR lpCmdLine,
  • int nCmdShow)
  • {
  • // TODO: Place code here.
  • MSG msg;
  • HACCEL hAccelTable;
  • // Initialize global strings
  • LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
  • LoadString(hInstance, IDC_HELLO, szWindowClass, MAX_LOADSTRING);
  • MyRegisterClass(hInstance);
  • // Perform application initialization:
  • if (!InitInstance (hInstance, nCmdShow))
  • {
  • return FALSE;
  • }
  • hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_HELLO);
  • // Main message loop:
  • while (GetMessage(&msg, NULL, 0, 0))
  • {
  • if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
  • {
  • TranslateMessage(&msg);
  • DispatchMessage(&msg);
  • }
  • }
  • return msg.wParam;
  • }
  • //
  • // FUNCTION: MyRegisterClass()
  • //
  • // PURPOSE: Registers the window class.
  • //
  • // COMMENTS:
  • //
  • // This function and its usage is only necessary if you want this code
  • // to be compatible with Win32 systems prior to the 'RegisterClassEx'
  • // function that was added to Windows 95. It is important to call this function
  • // so that the application will get 'well formed' small icons associated
  • // with it.
  • //
  • ATOM MyRegisterClass(HINSTANCE hInstance)
  • {
  • WNDCLASSEX wcex;
  • wcex.cbSize = sizeof(WNDCLASSEX);
  • wcex.style = CS_HREDRAW | CS_VREDRAW;
  • wcex.lpfnWndProc = (WNDPROC)WndProc;
  • wcex.cbClsExtra = 0;
  • wcex.cbWndExtra = 0;
  • wcex.hInstance = hInstance;
  • wcex.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_HELLO);
  • wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
  • wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
  • wcex.lpszMenuName = (LPCSTR)IDC_HELLO;
  • wcex.lpszClassName = szWindowClass;
  • wcex.hIconSm = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL);
  • return RegisterClassEx(&wcex);
  • }
  • //
  • // FUNCTION: InitInstance(HANDLE, int)
  • //
  • // PURPOSE: Saves instance handle and creates main window
  • //
  • // COMMENTS:
  • //
  • // In this function, we save the instance handle in a global variable and
  • // create and display the main program window.
  • //
  • BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
  • {
  • HWND hWnd;
  • hInst = hInstance; // Store instance handle in our global variable
  • hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
  • CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
  • if (!hWnd)
  • {
  • return FALSE;
  • }
  • ShowWindow(hWnd, nCmdShow);
  • UpdateWindow(hWnd);
  • return TRUE;
  • }
  • //
  • // FUNCTION: WndProc(HWND, unsigned, WORD, LONG)
  • //
  • // PURPOSE: Processes messages for the main window.
  • //
  • // WM_COMMAND - process the application menu
  • // WM_PAINT - Paint the main window
  • // WM_DESTROY - post a quit message and return
  • //
  • //
  • LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
  • {
  • int wmId, wmEvent;
  • PAINTSTRUCT ps;
  • HDC hdc;
  • TCHAR szHello[MAX_LOADSTRING];
  • LoadString(hInst, IDS_HELLO, szHello, MAX_LOADSTRING);
  • switch (message)
  • {
  • case WM_COMMAND:
  • wmId = LOWORD(wParam);
  • wmEvent = HIWORD(wParam);
  • // Parse the menu selections:
  • switch (wmId)
  • {
  • case IDM_ABOUT:
  • DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About);
  • break;
  • case IDM_EXIT:
  • DestroyWindow(hWnd);
  • break;
  • default:
  • return DefWindowProc(hWnd, message, wParam, lParam);
  • }
  • break;
  • case WM_PAINT:
  • hdc = BeginPaint(hWnd, &ps);
  • // TODO: Add any drawing code here...
  • RECT rt;
  • GetClientRect(hWnd, &rt);
  • DrawText(hdc, szHello, strlen(szHello), &rt, DT_CENTER);
  • EndPaint(hWnd, &ps);
  • break;
  • case WM_DESTROY:
  • PostQuitMessage(0);
  • break;
  • default:
  • return DefWindowProc(hWnd, message, wParam, lParam);
  • }
  • return 0;
  • }
  • // Mesage handler for about box.
  • LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
  • {
  • switch (message)
  • {
  • case WM_INITDIALOG:
  • return TRUE;
  • case WM_COMMAND:
  • if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
  • {
  • EndDialog(hDlg, LOWORD(wParam));
  • return TRUE;
  • }
  • break;
  • }
  • return FALSE;
  • }
// Hello.cpp : Defines the entry point for the application.
//

#include "stdafx.h"
#include "resource.h"

#define MAX_LOADSTRING 100

// Global Variables:
HINSTANCE hInst;								// current instance
TCHAR szTitle[MAX_LOADSTRING];								// The title bar text
TCHAR szWindowClass[MAX_LOADSTRING];								// The title bar text

// Foward declarations of functions included in this code module:
ATOM				MyRegisterClass(HINSTANCE hInstance);
BOOL				InitInstance(HINSTANCE, int);
LRESULT CALLBACK	WndProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK	About(HWND, UINT, WPARAM, LPARAM);

int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
 	// TODO: Place code here.
	MSG msg;
	HACCEL hAccelTable;

	// Initialize global strings
	LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
	LoadString(hInstance, IDC_HELLO, szWindowClass, MAX_LOADSTRING);
	MyRegisterClass(hInstance);

	// Perform application initialization:
	if (!InitInstance (hInstance, nCmdShow)) 
	{
		return FALSE;
	}

	hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_HELLO);

	// Main message loop:
	while (GetMessage(&msg, NULL, 0, 0)) 
	{
		if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) 
		{
			TranslateMessage(&msg);
			DispatchMessage(&msg);
		}
	}

	return msg.wParam;
}



//
//  FUNCTION: MyRegisterClass()
//
//  PURPOSE: Registers the window class.
//
//  COMMENTS:
//
//    This function and its usage is only necessary if you want this code
//    to be compatible with Win32 systems prior to the 'RegisterClassEx'
//    function that was added to Windows 95. It is important to call this function
//    so that the application will get 'well formed' small icons associated
//    with it.
//
ATOM MyRegisterClass(HINSTANCE hInstance)
{
	WNDCLASSEX wcex;

	wcex.cbSize = sizeof(WNDCLASSEX); 

	wcex.style			= CS_HREDRAW | CS_VREDRAW;
	wcex.lpfnWndProc	= (WNDPROC)WndProc;
	wcex.cbClsExtra		= 0;
	wcex.cbWndExtra		= 0;
	wcex.hInstance		= hInstance;
	wcex.hIcon			= LoadIcon(hInstance, (LPCTSTR)IDI_HELLO);
	wcex.hCursor		= LoadCursor(NULL, IDC_ARROW);
	wcex.hbrBackground	= (HBRUSH)(COLOR_WINDOW+1);
	wcex.lpszMenuName	= (LPCSTR)IDC_HELLO;
	wcex.lpszClassName	= szWindowClass;
	wcex.hIconSm		= LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL);

	return RegisterClassEx(&wcex);
}

//
//   FUNCTION: InitInstance(HANDLE, int)
//
//   PURPOSE: Saves instance handle and creates main window
//
//   COMMENTS:
//
//        In this function, we save the instance handle in a global variable and
//        create and display the main program window.
//
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
   HWND hWnd;

   hInst = hInstance; // Store instance handle in our global variable

   hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
      CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);

   if (!hWnd)
   {
      return FALSE;
   }

   ShowWindow(hWnd, nCmdShow);
   UpdateWindow(hWnd);

   return TRUE;
}

//
//  FUNCTION: WndProc(HWND, unsigned, WORD, LONG)
//
//  PURPOSE:  Processes messages for the main window.
//
//  WM_COMMAND	- process the application menu
//  WM_PAINT	- Paint the main window
//  WM_DESTROY	- post a quit message and return
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	int wmId, wmEvent;
	PAINTSTRUCT ps;
	HDC hdc;
	TCHAR szHello[MAX_LOADSTRING];
	LoadString(hInst, IDS_HELLO, szHello, MAX_LOADSTRING);

	switch (message) 
	{
		case WM_COMMAND:
			wmId    = LOWORD(wParam); 
			wmEvent = HIWORD(wParam); 
			// Parse the menu selections:
			switch (wmId)
			{
				case IDM_ABOUT:
				   DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About);
				   break;
				case IDM_EXIT:
				   DestroyWindow(hWnd);
				   break;
				default:
				   return DefWindowProc(hWnd, message, wParam, lParam);
			}
			break;
		case WM_PAINT:
			hdc = BeginPaint(hWnd, &ps);
			// TODO: Add any drawing code here...
			RECT rt;
			GetClientRect(hWnd, &rt);
			DrawText(hdc, szHello, strlen(szHello), &rt, DT_CENTER);
			EndPaint(hWnd, &ps);
			break;
		case WM_DESTROY:
			PostQuitMessage(0);
			break;
		default:
			return DefWindowProc(hWnd, message, wParam, lParam);
   }
   return 0;
}

// Mesage handler for about box.
LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
	switch (message)
	{
		case WM_INITDIALOG:
				return TRUE;

		case WM_COMMAND:
			if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) 
			{
				EndDialog(hDlg, LOWORD(wParam));
				return TRUE;
			}
			break;
	}
    return FALSE;
}

Commentaires et avis

signaler à un administrateur
Commentaire de LordBob le 26/06/2004 00:02:56

je comprend rien a ta source... aucun description, aucun commentaire, aucune note... rien...

signaler à un administrateur
Commentaire de ThierryTheOne le 26/06/2004 08:48:54

Avec VC6++ tu fais:
File > New > Win32 Application > A typical "Hello World!" application
et tu obtiens le même résultat (enfin exactement le même!!!).

signaler à un administrateur
Commentaire de Pamaury le 26/06/2004 10:14:42

franchement je connaisais pas le hello world en W32 mais la c'est un peu pitoyable(désolé) de faire un code si long pour un hello world :
->tu fais une fenêtre sans callback
->tu lui ajoute un static("hello Wolrd"
->c'est fini et çà prend 30 lignes

signaler à un administrateur
Commentaire de SuperDevy le 26/06/2004 11:48:13

Bidon !

signaler à un administrateur
Commentaire de sbnl31 le 26/06/2004 11:56:34

Vos remarques ne sont pas pertinentes...  Valice est débutante et tout le monde ne posséde pas VC++ 6 !
Une constatation : il n'y a pas de zip et les fichiers de resources manquent (resource.h, xxx.rc), par exemple IDS_APP_TITLE qui est sûrement défini dans une une "string table" n'est pas défini.
Peu importe ce que tu écris...
N'oublie jamais de préserver l'intégrité de tes sources (vérifie les dépendences de ton code).
Un moyen de recompiler est aussi très utile....

Bon courage Valice.


signaler à un administrateur
Commentaire de Valice le 26/06/2004 12:25:43

Merci sbnl31,

Je vais mettre le zip pour que vous puissiez compiler correctement...

signaler à un administrateur
Commentaire de BruNews le 26/06/2004 15:13:03 administrateur CS

Salut Valice,

ta source est sans conteste possible le resultat d'un wizzard VS. On espere plus personnel pour la suite.
A cet effet je te conseille de suivre Petzold, c'est ce qu'il y a de mieux pour apprendre le mode GUI sur win32:
http://brunews.free.fr/brunews/download/CP5.zip
http://brunews.free.fr/brunews/download/CP5Sources.zip

Bonne lecture et bosse bien.
BruNews, Admin CS, MVP Visual C++

signaler à un administrateur
Commentaire de neo_00110010101 le 26/06/2004 16:05:26

QUOTE sbnl31 "Valice est débutante et tout le monde ne posséde pas VC++ 6 !"

>> comment sais-tu ça ?? (pas que tout le monde n'a pas VC++ 6.0 mais que Valice soit ... débutantE ??)

Pour la source, au moins ça marche ^^

signaler à un administrateur
Commentaire de darkelda le 26/06/2004 17:17:36

deja pas de note, pas de description du code
ensuite pas de commentaire, si mais peu nombreux
et surtout le compilateur utilisé n'est même pas signalé!!! (si encore c'était utilisable par tous...)

rien à dire, encore une source qui n'est pas accessible à tous....

signaler à un administrateur
Commentaire de sbnl31 le 26/06/2004 21:23:29

Valice est débutante... C'est notiifé plus haut !!

Niveau: Débutant

A propos de VC++ 6.0, Microsoft a mis en ligne un Toolkit VC++ 6.0 qui fait 32 Mo env. et qui est librement téléchargeable pour un usage perso. (Sans IDE et sans Wizard !!!)

signaler à un administrateur
Commentaire de BruNews le 27/06/2004 00:34:13 administrateur CS

Le toolkit mis en telechargement est sur base VS 2003, autrement plus evolue que VS 6 comme compilo.

signaler à un administrateur
Commentaire de neo_00110010101 le 27/06/2004 09:52:23

"Valice est débutante", oui mais féminin !!!!!!! c'est tellement rare, comprend mon enthousiasme ! et c'est pourquoi je voulais savoir comment tu savais ça dès le début ... par le pseudo ?

signaler à un administrateur
Commentaire de Valice le 27/06/2004 11:47:57

Hey les gars, vous enballez pas trop vites !
Vous faites des conclusios un poil rapides !! Je suis une fille, mais j'ai piqué mon pseudo à un copain ... c'est à dire que c'était au départ le pseudo d'un mec !!


Bon, ok. Je l'avoue, ma source est nulle à chier. Elle n'a aucun intérêt.
Et je n'ai pas non-plus l'intention de la commenter.


A bientôt mes cocos ;)

signaler à un administrateur
Commentaire de neo_00110010101 le 27/06/2004 12:02:06

donc ... tu est là pour la même raison que nous tous ou bien tu as juste piqué le pseudo de ton copain et posté une source pour le mettre dans l'embarras ?? (et donc partir par la suite, mission accomplie) ??

Ta source n'est pas "nulle à chier" mais pour les commentaires tu aurais pu les traduire, voire en mettre plus :)
Et puis comme l'a dit sbnl31, tout le monde n'a pas VC++ 6.0 et donc ne peut pas avoir ce code en une seconde mais grâce à toi si ;]

oh ! j'ai oublié : bienvenue ! (un mois de retard je sais ...)

signaler à un administrateur
Commentaire de AmK le 30/06/2004 16:56:43

dis moi neo tu serais pas en train de la draguer par hazard ?

signaler à un administrateur
Commentaire de neo_00110010101 le 30/06/2004 17:25:49

:?
[mode privé on] je prend plus petit que mon âge hors elle doit avoir au moins + 6 que mon âge ... [mode privé off]
[mode public on] Qu'est-ce que tu raconte ? tu es fou ? ^^ en plus je n'aime pas sa façon de parler ... :
- "les gars" (mouais bof)
- "un mec" (berk, comme si je disait "meuf")
- "nulle à chier" (je n'aime pas les filles grossières)
- "mes cocos" (si tu veux ...)

et de toutes façon je n'aime pas les filles d'ici ... mon bonheur est au Japon

signaler à un administrateur
Commentaire de BruNews le 30/06/2004 17:45:22 administrateur CS

ben neo t'es bien complique, moi je les aime toutes, meme les martiennes si elles existent.

signaler à un administrateur
Commentaire de neo_00110010101 le 30/06/2004 17:56:35

ah désolé je n'en connais pas ... ^^
Bien sûr je tiens à dire que tout ce que j'ai dit sur elle n'est pas méchant ! (non, je ne la déteste pas !)
Mais bon pas la peine de continuer ...

Et puis moi je suis un petit garçon romantique trop choqué ... tout ce qu'il voit autour de lui c'est des filles qui parlent mal et qui crache par terre ... son seul espoir réside au Japon ... une japonaise en kimono ...
snif :(
je ne peux plus continuer, c'est trop dur ^^

signaler à un administrateur
Commentaire de Pamaury le 30/06/2004 18:48:59

[mode privé ON]
Pourquoi les japonaises ????????? Qu'est-ce quelles ont de plus ???
Et pourquoi en kimono ???, t'aime le judo ???
Autant de question sans reponse qui me brise le coeur(non je délire)^^
[mode privé OFF]
[mode public activé]
Sinon, ce "genre" de poste n'est pas recommencer

signaler à un administrateur
Commentaire de neo_00110010101 le 30/06/2004 19:03:28

"Sinon, ce "genre" de poste n'est pas recommencer"

>> un ordre ? ce n'est pas moi qui est lancé cette conversation et puis elle ne gêne personne car cette source n'interesse personne (même toi).

"t'aime le judo ???"

>> au moins le quart de la population se promène en kimono (costume traditionnel) car les japonais respecte les traditions ... et je trouve ça magnifique (mais je n'exclue pas les mini jupes très fréquentes aussi ^^)

Sinon les japonaises sont très mignonnes, très belles, (très polies, très gentilles mais ça c'est un cliché bien que vérifié fréquement ...)

Tu ne partage pas mon avis ? j'en connais des filles d'ici qui sont bien mais ... y'a toujours un problème on dirait !

signaler à un administrateur
Commentaire de Pamaury le 30/06/2004 19:48:19

je suis d'accord ce poste ne m'intéresse pas mais ce n'est pas un ordre mais conseil(pas pour toi neo) car sinon çà risque d'être supprimer par les admins . Sinon pour le kimono je savais pas et puis pour les japonaises je te crois sur parole car j'en ai jamais vu mais bon chacun ses goûts

signaler à un administrateur
Commentaire de neo_00110010101 le 30/06/2004 19:57:45

oh oui crois moi :) tu n'habite pas dans une ville où il y a un quartier asiatique ? enfin c'est sûr que ce n'est pas en France que tu va trouver des japonaises en kimono ><

Voilà un site sous forme de journal avec photos d'un voyage au Japon :

http://www.jeunestalents.com/japon/index/
Prend le temps de TOUT regarder, ça vaut le coup !

signaler à un administrateur
Commentaire de AmK le 01/07/2004 12:11:26

pamaury qu'est ce que tu racontes :  car sinon çà risque d'être supprimer par les admins !

ils sont gentils les admins qu'est ce que tu crois :pppp
n'est ce pas brunews loooooooooooooooool

signaler à un administrateur
Commentaire de neo_00110010101 le 01/07/2004 12:18:29

mais un peu rares ? Brunews est le seul admin à qui j'ai déjà parlé !
bien que j'ai déjà vu BlackWizzard, EBArtSoft, OriOn ... mais je suis loin de toute la liste !

signaler à un administrateur
Commentaire de BruNews le 01/07/2004 12:24:56 administrateur CS

AmK > je pense que oui mais on ne peut pas plaire a tout le monde surtout quand on a le role ingrat du maintien de l'ordre.
On va peut etre cesser de  spammer les boites avec des posts pas franchement indispensables, retournons au codage.
Vive le C et les pointeurs !!! (pas pret de finir les posts ainsi...)

signaler à un administrateur
Commentaire de Pamaury le 02/07/2004 09:47:24

en fait, vous avez-mal interprété ce que j'ai(sûrement mal) dit :
C'est à dire : il ne faudrait pas recommencer à poster une sources comme celle-là qui n'apprendre absolument rien et vient d'un wisard de VC++ ou autre

signaler à un administrateur
Commentaire de wiaeke le 02/07/2004 21:33:39

tout ca c'est le c++ pas mal et amk tu parles
neo drague tu dis moi j'ne sasi pas et toi tu le saitet tout le s'interrese au code source d'une........et plein de commentaires
ils te disent que t'es la bienvenue si tu leurs envoient ta photos il feront quoi a ton avis................

signaler à un administrateur
Commentaire de elflink le 15/10/2004 22:49:54

Je mets 9/10 parce que ton programme a le mérite d'être poli.

signaler à un administrateur
Commentaire de neo_00110010101 le 16/10/2004 14:33:35

c'est vrai elflink, c'est une chose parfaite bien qu'inutile pour les utilisateurs de VC++ :)

finalement elle n'a que +2 que moi (pas la peine de chercher de quoi je parle ^^)

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,874 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.