ajouter une fenetre à une application win32 console ?

ajouter une fenetre à une application win32 console ? - C++ - Programmation

Marsh Posté le 26-05-2006 à 15:09:10    

bonjour,
comment je pourrai ajouter une fenetre à une application win32 console ?
 
le mian du projet :
 [#0000ff size=2]
int[/#0000ff size=2][size=1] _tmain([/size][#0000ff size=2]int[/#0000ff size=2][size=1] argc, TCHAR* argv[], TCHAR* envp[])
{
//.............;
}
 
merci pour votre aide[/size]

Reply

Marsh Posté le 26-05-2006 à 15:09:10   

Reply

Marsh Posté le 26-05-2006 à 16:07:57    

si tu veux une fenêtre, il ne faut pas faire de projet Win32 Console, mais Win32 Application


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 26-05-2006 à 16:47:10    

Harkonnen a écrit :

si tu veux une fenêtre, il ne faut pas faire de projet Win32 Console, mais Win32 Application


 :hello:  
D'accord, mais dans l'absolu ca doit quand meme etre possible non (cf la GLut, par exemple?)

Reply

Marsh Posté le 26-05-2006 à 16:52:27    

oui c'est possible, mais il devra partir de rien du tout :spamafote:
il va falloir tout créer : la classe de fenêtre, puis la fenêtre elle même et enfin la procédure de traitement des messages. s'il est débutant, il va galérer


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 26-05-2006 à 17:47:16    

Code :
  1. ///////////////////////////////////
  2. // message loop to process user input
  3. MSG msg;
  4. while(1)
  5. {
  6.  if(::PeekMessage(&msg,hWnd,0,0,PM_REMOVE))
  7.  {
  8.   if(msg.message==WM_KEYUP)
  9.   {
  10.    int nVirtKey = (int)msg.wParam;
  11.    // if the user pressed the ESCAPE key, then
  12.    // do something
  13.    if(nVirtKey==VK_ESCAPE)
  14.    {
  15.                                                       // code
  16.    }
  17.   }
  18.   // process message
  19.   ::TranslateMessage(&msg);
  20.   ::DispatchMessage(&msg);
  21.  }
  22.  else
  23.  {
  24.   // if there is no message to process,  
  25.   // then sleep for a while to avoid burning
  26.   // too much CPU cycles
  27.   ::Sleep(100);
  28.  }
  29. }
  30. //////////////////////////////////
  31.              //_Create_Window()
  32. HWND hwnd;
  33. WNDCLASSEX wincl;
  34. int nFunsterStil;
  35. HINSTANCE hThisInstance;
  36. // Structure de la fenêtre
  37. wincl.hInstance = hThisInstance;
  38. wincl.lpszClassName = "classe";
  39. wincl.lpfnWndProc = WndProc; // Fonction appelée par Windows
  40. wincl.style = CS_HREDRAW|CS_VREDRAW; // Redessine à chaque fois
  41. wincl.cbSize = sizeof(WNDCLASSEX);
  42. // Icônes, pointeur, etc
  43. wincl.hIcon = LoadIcon(NULL, IDI_APPLICATION);
  44. wincl.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
  45. wincl.hCursor = LoadCursor(NULL, IDC_ARROW);
  46. wincl.lpszMenuName = NULL; wincl.cbClsExtra = 0; wincl.cbWndExtra = 0;
  47. wincl.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH); // Fond blanc
  48. // Enregistre la classe sinon quitte le programme
  49. RegisterClassEx(&wincl);
  50. // Création de la fenêtre
  51. hwnd = CreateWindowEx(0, "classe",
  52.  "C++ et Windows - 01", // Titre
  53.  WS_OVERLAPPEDWINDOW, // Fenêtre par défaut
  54.  GetSystemMetrics(SM_CXSCREEN)/4, // left
  55.  GetSystemMetrics(SM_CYSCREEN)/4, // top
  56.  GetSystemMetrics(SM_CXSCREEN)/2, // width
  57.  GetSystemMetrics(SM_CYSCREEN)/2, // height
  58.  HWND_DESKTOP, NULL, hThisInstance, NULL );
  59. // Montre la fenêtre
  60. ShowWindow(hwnd, 1);
  61. /////////////////////////////////////////////////////////////////////////////////


 
le probleme c'est que dans un projet console : je ne sais pas comment faire pour  
hThisInstance
 
à chaque fois j'ai erreur
 
comment récuperer un "hThisInstance" valide pour que ça marche ?

Reply

Marsh Posté le 26-05-2006 à 19:26:51    

et ben voila, c'est pour ce genre de raison que je pense qu'il vaut mieux repartir d'un projet Win32 Application, mais bon, on s'en fout de ce que je raconte :sarcastic:
sinon, normal que tu aies une erreur ! le hThisInstance, c'est bien joli de le déclarer, mais encore faut il l'initialiser !
et comment l'initialise t'on ? ça se fait tout seul avec un Win32 Application, sinon on utilise le code suivant :

Code :
  1. hThisInstance = (HINSTANCE)GetModuleHandle(NULL);


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 27-05-2006 à 00:12:12    

wowowowoowowowowowow :lol:  :lol:  :lol:  :lol:  :lol:  
 :jap:  :jap:  :jap:  :jap:  :jap:  :jap:  :jap:  :jap:  :jap:  
 
 
àa maaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarche
 
merciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii

Reply

Marsh Posté le 28-05-2006 à 00:40:34    

_beginthread

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed