Accueil > Forum > > > > CreateWindow
CreateWindow
vendredi 17 décembre 2004 à 02:13:24 |
CreateWindow

Djoobstil
|
Bonjour, Est-il possible d'utiliser CreateWindow en mode console (main et non WinMain) ? Cordialement, Djoobstil
|
|
vendredi 17 décembre 2004 à 03:06:53 |
Re : CreateWindow

Nebula
|
Ben oui : une application console est une application Win32.
|
|
vendredi 17 décembre 2004 à 11:06:45 |
Re : CreateWindow

Djoobstil
|
Pourtant, je n'arrive pas à le faire générer d'HWND (j'en ai besoin pour les sockets asynchrones). En fait, je sais pas vraiment comment m'y prendre, je dois plutt faire un CreateDialog ou CreateWindow sachant que j'ai la fentre qui reçoit la réponse de la fonction asynchrone: LRESULT CALLBACK WSAAsyncProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch(msg) { case WM_WSAASYNC: if (!WSAGETSELECTERROR(lParam)) puts("WSAAsyncGetHostByAddr success."); else puts("error"); return 1; } return 1; }
|
(Code en C). Cordialement, Djoobstil
|
|
vendredi 17 décembre 2004 à 13:39:55 |
Re : CreateWindow

Nebula
|
http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowfeatures.asp?frame=true#message_only
Et tu gères les messages qui t'intéressent (ainsi que quelques obligatoires pour quitter le programme, WM_DESTROY au minimum).
|
|
vendredi 17 décembre 2004 à 18:20:19 |
Re : CreateWindow

Djoobstil
|
Le probleme est que je n'arrive pas a former le HWND, il est toujours à null. Une idée de la raison ?
Cordialement, Djoobstil
|
|
vendredi 17 décembre 2004 à 18:59:20 |
Re : CreateWindow

Nebula
|
Ce code fonctionne chez moi, pioche dedans ce qui te manque : #include <windows.h> #include <stdio.h> #include "assert.h"
#define WND_CLASS TEXT("CONSOLE_WND")
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { case WM_MOUSEMOVE: puts("Ahaha, ca chatouille !"); return 0; case WM_DESTROY: PostQuitMessage(0); return 0; default: return DefWindowProc(hWnd, uMsg, wParam, lParam); } }
int main(void) { WNDCLASSEX wc; HWND hWnd; MSG Msg; wc.cbSize = sizeof(wc); wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = GetModuleHandle(NULL); wc.hIcon = NULL; wc.hCursor = NULL; wc.hbrBackground = (HBRUSH) (COLOR_WINDOW + 1); wc.lpszMenuName = NULL; wc.lpszClassName = TEXT(WND_CLASS); wc.hIconSm = NULL; assert(RegisterClassEx(&wc) != 0); hWnd = CreateWindowEx(WS_EX_APPWINDOW, TEXT(WND_CLASS), TEXT("Une fenêtre en mode console"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 300, 100, NULL, NULL, wc.hInstance, NULL); assert(hWnd != NULL); ShowWindow(hWnd, SW_SHOWNORMAL); assert(UpdateWindow(hWnd) != 0); while (GetMessage(&Msg, NULL, 0, 0) > 0) { if (IsDialogMessage(hWnd, &Msg) == 0) { TranslateMessage(&Msg); DispatchMessage(&Msg); } } return Msg.wParam; } |
|
|
vendredi 17 décembre 2004 à 20:18:31 |
Re : CreateWindow

Djoobstil
|
Parfait, ça marche ! Mais ça soulève un deuxième probleme avec: WSAAsyncGetHostByAddr Je l'utilise comme suit: WSAAsyncGetHostByAddr(hwnd, WM_WSAASYNC, (char *)&addr, len, type, (char *)&listn->hp, sizeof(listn->hp));
|
il n'appelle pas WndProc, alors que normalement, même en cas d'échec de la résolution de l'host il devrait appeller la fonction. Cordialement, Djoobstil
|
|
vendredi 17 décembre 2004 à 20:44:20 |
Re : CreateWindow

Nebula
|
Hm il l'appelle en cas de succès au moins ?
|
|
vendredi 17 décembre 2004 à 21:44:32 |
Re : CreateWindow

Djoobstil
|
oui et en cas de succès, lParam est null. Cordialement, Djoobstil
|
|
vendredi 17 décembre 2004 à 22:53:51 |
Re : CreateWindow

aardman
|
Salut,
HANDLE WSAAsyncGetHostByAddr( HWND hWnd, unsigned int wMsg, const char* addr, int len, int type, char* buf, int buflen );
hWnd: handle de fenetre valide. wMsg: message qui sera envoyé a la fenetre. addr: pointeur sur un DWORD qui contient l'adresse a resoudre (format ipv4). len: longueur de l'adresse, c'est a dire sizeof(DWORD). type: SOCK_STREAM buf: buffer vide, déclaré en global, d'une taille de MAXGETHOSTSTRUCT octets. (un tableau de BYTE par exemple). buflen: taille du buffer, c'est a dire MAXGETHOSTSTRUCT.
Quand tu recois le message, tu peux afficher le numéro de l'erreur (HIWORD(lParam)) S'il n'y a pas d'erreur, tu peux déclarer un pointeur struct hostent* et le caster avec l'adresse du tableau de byte. Et ensuite tu peux acceder aux champs de la structure hostent..
|
|
Cette discussion est classée dans : font, tahoma, createwindow
Répondre à ce message
Sujets en rapport avec ce message
probleme de boucle!!! :( [ par matteokun ]
matteokunBonjour,Je suis débutant en C++ et j'essai de réaliser le jeu du pendu en C++ mais je rencontre quelques difficultées sur une boucle...Biensu
trivial pursuit en langage c [ par blainchris ]
chrisun grand merci pour gds75 pour son coup de main, mais si quelqu' un avait un autre programme en c du trivial pursuit avec une interface graphique
A propos de Builder 4 [ par franclin ]
erreur:Regle du projet introuvable a l`ouverture d`un fichier a quoi est-il du?
ShellExecute bloquant [ par garslouche ]
Bonjour,je voudaris lancer un programme et ne récupérer la main que que celui-ci est terminé.Y a-t-il une sorte de ShellExecute bloquant ?Merci.On ne
Grand débat [ par garslouche ]
Bonjour à tous,je voudrais avoir l'avis d'un maximum de gens sur la question suivante :Quand vous programmez comment choisissez-vous le nom des variab
Opérateur postfixé [ par garslouche ]
Bonjour à tous,est-ce quelqu'un asit s'il est possible de définir un opérateur unaire post-fixé ?Par exemple pour faire factorielleMerciOn ne force pa
Les fonctions d'une DLL [ par garslouche ]
Salut,je voudrais pourvoir connaitre les fonctions externes d'une DLL (comme le fait l'outil Depends de VC++).Idéalement j'aimerais aussi voir le type
Form et PID [ par garslouche ]
Bonjour,j'ai le handle d'une fenêtre et je voudrais récupérer le ProcessID de l'appli qui l'a créée.Est-ce possible ? Si oui, comment ?Merci !On ne fo
Propriétés [ par garslouche ]
Bonjour à tous,je souhaite afficher la fenêtre de propriétés d'un fichier tout comme le fait Windows.Eventuellement la même chose pour un répertoire s
Makefile VC++ 6 [ par garslouche ]
Bonjour,j'ai exporté le makefile d'un projet. Je récupère donc un fichier .mak que j'ai ensuite modifié.Comment faire pour que VC++ utilise ce makefil
Livres en rapport
|
Derniers Blogs
CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT)CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT) par FREMYCOMPANY
Bonjour à tous, Je viens de publier une proposition comprenant 5 pseudo-classes pour le CSS Working Group ayant trait à l'état de chargement d'un élément (ex: IMG,VIDEO,AUDIO,OBJECT pour l'HTML.). Si le c½ur vous en dit, vous pouvez retrouver cette p...
Cliquez pour lire la suite de l'article par FREMYCOMPANY MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ?MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ? par ROMELARD Fabrice
Formation initiale Durant la formation, le découpage classique est le suivant (je donnerai les équivalences Suisse lorsque je les connaîtrais) : Ecole primaire jusqu'au Collège : Formation générale permettant d'obtenir les méthodes...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice Y'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENTY'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENT par Aleks
Quand on a ce genre d'erreur sans log :
Et bas on a juste envie de choper le gas de Microsoft qu'a développé ça et lui foutre des baffes de Coboye ! ...
Cliquez pour lire la suite de l'article par Aleks [HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL[HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL par Pierrick CATRO-BROUILLET
Avec la sortie prochaine de la Beta Consumer Preview de Windows 8, j'avais envie de revenir sur une des fonctionnalités que j'attends le plus et que, en bon geek que je suis, j'utilise déjà : Hyper-V 3 ainsi son module PowerShell.
Il y a déjà pléthor...
Cliquez pour lire la suite de l'article par Pierrick CATRO-BROUILLET IIS7 - COMPRESSION GZIPIIS7 - COMPRESSION GZIP par cyril
La compression GZIP permet d'améliorer les performances de navigation en compressant ce qu'envoie le serveur à un client. Pour comprendre comment cela fonctionne, regardons ce qu'il se passe au niveau HTTP lorsqu'un client tente d'accéder à une ress...
Cliquez pour lire la suite de l'article par cyril
Forum
ARBRE BINAIREARBRE BINAIRE par pacotheking
Cliquez pour lire la suite par pacotheking
Logiciels
Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning Academy System (17.1.3.0)ACADEMY SYSTEM (17.1.3.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|