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
COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE?COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE? par Matthieu MEZIL
Avec EF, les vues doivent être mappées sur des entity types. Le problème c'est que les entity types doivent avoir une clé. Avec EF, nous avons les complex type qui n'ont pas de clé mais les vues ne peuvent pas être mappées dessus. Avec EF4, il est possibl...
Cliquez pour lire la suite de l'article par Matthieu MEZIL [WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL?[WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL? par JeremyJeanson
Certain d'entre vous on peut être vécu cette situation embarrassante après quelques temps passer avec WF4 : Au début avec mon " ActivityDesigner" , tout allait bien. Et puis un jour j'ai au des problèmes de " Binding" . Alors nous sommes allé sur le site ...
Cliquez pour lire la suite de l'article par JeremyJeanson MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ?MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ? par junarnoalg
La prochaine session de MyTIC aura lieu à Namur, le 23 mars prochain. Pendant presque une heure, nous parlerons de SharePoint 2010. Voici un aperçu du programme.
Accueil : 17h30 Début de la session : 18h00 - Les nouvelles int...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
ERREUR DE POINTEURERREUR DE POINTEUR par africanwinners
Cliquez pour lire la suite par africanwinners CLISTCTRLCLISTCTRL par dorras7
Cliquez pour lire la suite par dorras7
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|