C++ -> Visual C++ - C++ - Programmation
Marsh Posté le 12-01-2003 à 14:37:01
Je ne sais pas si tu trouveras un tut pour ça. Qu'est ce qu'il fait ton prog ? De toutes manières, il y a de fortes chances pour que tu doives apprendre le fonctionnement de VC++ (ou la programmation Windows) si tu veux arriver à tes fins.
Marsh Posté le 12-01-2003 à 14:42:13
Citation : g fé un prog en C++ mé le probleme c ke les printf |
Marsh Posté le 12-01-2003 à 15:14:06
il faut que tu crees une fenetre (en VC++ donc fcts win32) que tu y ajoutes un control EDIT par exemple et que remplaces tous tes printf par une fonction qui va afficher dans ce controle ...comme dit cherrytree, tu es obligé de te mettre a la programmation windows (le systeme de fenetre / controle, la programmation evenementielle / les messages etc ...)
Mais rassure toi, ce que tu veux faire n est ni dur ni long a faire
Marsh Posté le 13-01-2003 à 12:41:56
ReplyMarsh Posté le 13-01-2003 à 12:45:55
farib a écrit : |
nan c un acharné du stdart, alors les printfs dans du C++ ca le fait monter en tension
Marsh Posté le 13-01-2003 à 13:08:54
chrisbk a écrit : |
nan ++Taz est le programmeur le plus porc de Prog@HFR
Marsh Posté le 13-01-2003 à 14:19:39
farib a écrit : |
Je le bats.
Marsh Posté le 13-01-2003 à 17:42:06
pareil que ++taz
Marsh Posté le 14-01-2003 à 23:34:24
désolé d'avoir été si long a répondre mé me voilà
donc, en fait c clair : y fo ke je mette a la prog en VC paske g enfin réussi a comprendre commen on fé application win32 mé c clair ke je comprend rien , y propose un exemple "hello world" mé j compren rien a tte les lignes de codes .... (g juste réussi a trouver où il mettai le message ...)
donc, en bref, où c ke je peu trouver un tuto juste pour faire du "fenetrage" ou alor (ce ki serai encore mieu) un code source avec juste les lignes essentielles
merci
Marsh Posté le 15-01-2003 à 00:29:11
ded jay a écrit : désolé d'avoir été si long a répondre mé me voilà |
le plus simple sous vc++, c de dl Qt
Marsh Posté le 15-01-2003 à 23:35:18
ded jay a écrit : c koi Qt ? |
Une lib graphique développée par TrollTech, pour Windows et *Nix. ça a la côte en ce moment.
Marsh Posté le 16-01-2003 à 18:16:52
et où c ke je peu trouver ca ? (avec les explications de préférences)
Marsh Posté le 16-01-2003 à 19:20:39
ded jay a écrit : et où c ke je peu trouver ca ? (avec les explications de préférences) |
Sur le site de TrollTech par exemple ! Non ? Hein ?
Bon et sinon c'est pas fait pour les chiens.
Marsh Posté le 16-01-2003 à 22:50:24
attention qt sous win n'est pas libre je crois ...
GTK+ l'est lui
Marsh Posté le 25-01-2003 à 15:37:06
bon alor voilà, g fé un code hyper basic juste pour comprendre en me servant d'un otre code source basic et ca donne ca :
defines.h
#define IDM_EXIT 100
#define IDM_TEST 200
#define IDM_ABOUT 300
#define IDC_TEXT 101
#define IDC_EDIT 102
#define IDC_BTN 102
fenetre.rc
#include <windows.h>
#include "defines.h"
MYAPP ICON DISCARDABLE "DeusEx.ico"
MYAPP MENU DISCARDABLE
BEGIN
POPUP "&File"
BEGIN
MENUITEM "E&xit", IDM_EXIT
END
MENUITEM "Test!", IDM_TEST
POPUP "&Help"
BEGIN
MENUITEM "&About ...", IDM_ABOUT
END
END
ABOUTBOX DIALOG 22, 17, 171, 43
STYLE DS_MODALFRAME | WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU
CAPTION "Listing 3-2"
FONT 8, "MS Sans Serif"
{
CONTROL "MyApp", -1, "STATIC", SS_ICON | WS_CHILD | WS_VISIBLE, 3, 2, 16, 16
CONTROL "Generic Application", -1, "STATIC", SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 28, 4, 100, 8
CONTROL "OK", IDOK, "BUTTON", BS_DEFPUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 116, 26, 50, 14
}
Marsh Posté le 25-01-2003 à 15:45:39
et le "main" :
/*************************** librairies */
#include <windows.h>
#include "defines.h"
/************************ variables globales */
HINSTANCE hInst;
LPCTSTR lpszAppName = "Mon application à moi";
LPCTSTR lpszTitle = "mes clips ke je grave";
/********************** definition des fonctions */
ATOM MyRegisterClass (HINSTANCE hInstance);
BOOL InitInstance (HINSTANCE, int);
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK About (HWND, UINT, WPARAM, LPARAM);
/***************************** main */
int APIENTRY WinMain( HINSTANCE hInstance,
HINSTANCE revInstance,
LPTSTR lpCmdLine,
int nCmdShow )
{
MSG msg;
if (!MyRegisterClass ( hInstance )) return false;
if (!InitInstance ( hInstance, nCmdShow )) return false;
while( GetMessage ( &msg, NULL, 0, 0) )
{
TranslateMessage ( &msg );
DispatchMessage ( &msg );
}
return msg.wParam;
}
/************************ enregistre la Classe */
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, lpszAppName );
wcex.hCursor = LoadCursor ( NULL,IDC_ARROW );
wcex.hbrBackground = ( HBRUSH ) ( COLOR_WINDOW+1 );
wcex.lpszMenuName = lpszAppName;
wcex.lpszClassName = lpszAppName;
wcex.hIconSm = LoadIcon ( wcex.hInstance, lpszAppName );
return RegisterClassEx ( &wcex );
}
/****************** creer la fenetre principale */
BOOL InitInstance ( HINSTANCE hInstance, int nCmdShow )
{
HWND hWnd;
hInst = hInstance;
hWnd = CreateWindow ( lpszAppName,
lpszTitle,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, 0,
CW_USEDEFAULT, 0,
NULL,
NULL,
hInstance,
NULL );
if ( !hWnd ) return false;
ShowWindow ( hWnd, nCmdShow );
UpdateWindow ( hWnd );
return true;
}
/************************ fenetre principale */
LRESULT CALLBACK WndProc ( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
{
static HWND hText = NULL;
static HWND hEdit = NULL;
static HWND hBtn = NULL;
TCHAR szHello [10] = "hello";
LoadString ( hInst, 10, szHello, 10 );
switch ( uMsg )
{
case WM_COMMAND :
switch ( LOWORD ( wParam ) )
{
case IDM_TEST :
hText = CreateWindow ("STATIC", "Static Text", WS_CHILD | WS_VISIBLE | SS_LEFT,
10, 10, 100, 15,
hWnd,
( HMENU ) IDC_TEXT,
hInst, NULL );
hEdit = CreateWindow ( "EDIT", "",WS_CHILD | WS_VISIBLE | ES_LEFT | WS_BORDER,
110, 8, 100, 20,
hWnd,
( HMENU ) IDC_EDIT,
hInst, NULL );
hBtn = CreateWindow
( "BUTTON", "Push button", WS_CHILD | WS_VISIBLE | S_PUSHBUTTON,
50, 50, 100, 32,
hWnd,
( HMENU ) IDC_BTN,
hInst, NULL );
break;
case IDM_ABOUT :
DialogBox ( hInst, "AboutBox", hWnd,
( DLGPROC ) About );
break;
case IDM_EXIT :
DestroyWindow ( hWnd );
break;
}
break;
case WM_DESTROY :
PostQuitMessage ( 0 );
break;
default :
return DefWindowProc ( hWnd, uMsg, wParam, lParam );
}
return 0L;
}
/***************************** boite de dialogue ABOUT */
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, true );
return true;
}
break;
}
return false;
}
/**************************************************************/
Marsh Posté le 25-01-2003 à 15:47:50
et ce code m'affiche juste la fenetre principale sans afficher la barre de menu alor k'elle est codée et appelée ....
je compren pa
si kelkun pouvai me dire où se trouve l'erreur ...
Marsh Posté le 25-01-2003 à 16:36:18
ded jay a écrit : et ce code m'affiche juste la fenetre principale sans afficher la barre de menu alor k'elle est codée et appelée .... |
wcex.lpszMenuName = lpszAppName;
wcex.lpszMenuName = "MYAPP";
Marsh Posté le 25-01-2003 à 16:37:46
trictrac a écrit : attention qt sous win n'est pas libre je crois ... |
c'est pas "je crois", c'est sur
mais entre gtk+ et Qt y'en a un c'est de la merde, donc c'est vite vue...
edit : ro putain j'avais pas matte le code source au dessus.
c'est vraiment immonde !
et c'est pas du C++ (on en est tres tres loin) c'est du win32SDK en C
quand je dis que gtk c'est pas le top, c'est tout de meme 100x plus propre et mieux pense que le win32SDK.
Marsh Posté le 25-01-2003 à 16:41:14
tanguy a écrit : |
Pour des applis non commerciales qt est bien gratuit ?
Marsh Posté le 25-01-2003 à 16:48:19
hellbilly a écrit : |
franchement c'est pas complique il suffit d'aller sur le site web de trolltech et de LIRE la doc.
T'as de la chance c'est 100x mieux foutu que la MSDN et tu trouveras la reponse en 2min
sous Unix c'est sous double licence QPL et GNU GPL != GNU LGPL utilise par Gtk
sous windows
Qt 2 c'est gratuit pour les applis non commerciales et illimites dans le temps
Qt 3 est gratuit mais limite a 30j
http://trolltech.com
Marsh Posté le 25-01-2003 à 16:59:11
tanguy a écrit : |
Mais j'y suis deja aller... je parlais evidemment de la version 2.3 (que je viens tout juste d'installer). On m'en dit tellement de bien !
Marsh Posté le 25-01-2003 à 17:20:42
hellbilly a écrit : |
oui Qt c'est bien (bon c'est pas parfait non plus hein)
l'utiliser avec Visual, c'est du gachi
et utiliser la version 2.3 (ca doit bien avoir 2 ans) en sachant que la version 3.1 est sortie avec enormement d'ameliorations ca doit surement etre tres frustrant, m'enfin c'est toujours le meme principe, y'a des fonctionnalites en plus qui ne remettent pas en cause le passe (=compatibilite).
pour ma part j'ai resolu le probleme :
j'utilise gcc qui est bien meilleur que Visual au niveau du C++
j'ai Qt sous licence GPL en derniere version
j'ai les derniers outils de developpement : debuggeur, editeur, IDE, memory leak checker et des tonnes de librairies, d'outils et d'exemple de programmes a ma disposition.
Malheureusement, il y a un veritable probleme a cette solution :
"pas assez chere mon fils !"
M'enfin chacun son choix, et je respecte profondement le choix des autres
Marsh Posté le 25-01-2003 à 22:19:18
HALLELUIA mes freres !!!
le but de ce post est enfin atteint
je tient a remercier hellbilly ki me fut d'une grande aide ds son dernier post
merci encore
Marsh Posté le 12-01-2003 à 13:59:58
g fé un prog en C++ mé le probleme c ke les printf renvoient sur une fenetre dos et c pa top, j'aimerais bien faire des belles fenetres windows, mé le probleme c ke j connai rien en Visual C++ ...
Donc si on pouvais me renseigner a propo de tuto de VC++ pour adapter un code de C++ en VC++, ce serai cool
thk