Accueil > Forum > > > > Problème de Focus entre fenêtre principal et Enfant
Problème de Focus entre fenêtre principal et Enfant
vendredi 5 juin 2009 à 23:19:25 |
Problème de Focus entre fenêtre principal et Enfant

TeniX
|
Salut, Voila mon problème est que sur ma fenêtre enfant je n'arrive à dire jamais à avoir la "Title bar" en bleu non grisé, j'ai testé plusieurs méthode dont le SetFocus etc , mais rien à faire. Niveau code j'ai en fenêtre parent : MainHWND = CreateWindowEx (0, szClassName, "Main Window", WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX | WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hThisInstance, &Parent); ---------------------------------------------------------------------- Et enfant: hwndStatus = CreateWindowEx (WS_EX_TOOLWINDOW ,szStatusName,"Enfant",WS_CHILD | WS_BORDER | WS_CAPTION | WS_MINIMIZEBOX | WS_OVERLAPPED, 0,0,800,600, hwnd, (HMENU) 50, (HINSTANCE) GetWindowLong(hwnd,GWL_HINSTANCE), NULL); ---------------------------------------------------------------------- J'ai tester plein de méthode citer dans ce poste: http://www.cppfrance.com/forum/sujet-WS_POPUP-FOCUS_728551.aspx Comme la Fontion SetParent , mais avec celle-ci ma fenetre enfant n'apparait plus. J'ai essayé plein de Windows Style comme le WS_EX_TOPMOST , mais rien y fait . Si vous avec une idée , voila un petit screen du Pb : http://pkzm62.free.fr/essai222.JPG Merci d'avance. Ciao
|
|
vendredi 5 juin 2009 à 23:42:50 |
Re : Problème de Focus entre fenêtre principal et Enfant

juju12
|
Pour faire ce genre de choses, il faut utiliser le MDI (Multi Document Interface), donc notamment WS_EX_MDICHILD.
|
|
samedi 6 juin 2009 à 12:32:30 |
Re : Problème de Focus entre fenêtre principal et Enfant

TeniX
|
Merci de l'aiguillage ,je vais faire mes recherches et déposer une exemple si je trouve  Ciao
|
|
samedi 6 juin 2009 à 18:05:35 |
Re : Problème de Focus entre fenêtre principal et Enfant

TeniX
|
Réponse acceptée !
Pour les intéressé voila un Simple code pour Crée une fenêtre MDI avec CreateWindow() Testé sous Dev-cpp.
#include <windows.h>
#define IDM_MDICLIENT 101 #define IDM_WINDOWCHILD 102 #define IDM_BROWSE 103
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM); LRESULT CALLBACK ChildMDI(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
char szClassName[ ] = "WindowsApp"; char szChildDialog[]="WindowChild";
void CreateMDI();
HINSTANCE hInst; HWND MainHwnd; HWND hwndMDI;
int WINAPI WinMain (HINSTANCE hThisInstance,HINSTANCE hPrevInstance,LPSTR lpszArgument,int nFunsterStil) { HWND hwnd; MSG messages; WNDCLASS wc; HMENU hSubMenu2=CreatePopupMenu(); AppendMenu(hSubMenu2,MF_STRING,IDM_BROWSE,"&Ouvrir"); HMENU hMenu=CreateMenu(); AppendMenu(hMenu,MF_POPUP,(UINT_PTR)hSubMenu2,"&Fichier");
wc.style=CS_SAVEBITS|CS_DBLCLKS; wc.lpfnWndProc=(WNDPROC)WndProc; wc.cbClsExtra=0; wc.cbWndExtra=0; wc.hInstance=hThisInstance; wc.hIcon=LoadIcon((HINSTANCE)NULL,IDI_APPLICATION); wc.hCursor=LoadCursor((HINSTANCE)NULL,IDC_ARROW); wc.hbrBackground=(HBRUSH)(COLOR_WINDOWFRAME); wc.lpszMenuName=NULL; wc.lpszClassName="MainWndClass";
if(!RegisterClass(&wc)) return 0; wc.lpfnWndProc=(WNDPROC)ChildMDI; wc.hIcon=NULL; wc.lpszMenuName=(LPCTSTR)NULL; wc.cbWndExtra=0; wc.lpszClassName=szChildDialog; if(!RegisterClass(&wc)) return 0; hInst=hThisInstance;
MainHwnd=CreateWindow( "MainWndClass", "Main Window", WS_CAPTION|WS_MINIMIZEBOX|WS_MAXIMIZEBOX|WS_SYSMENU|WS_VISIBLE|WS_SIZEBOX|WS_CLIPCHILDREN, CW_USEDEFAULT, CW_USEDEFAULT, 600, 600, (HWND)NULL, hMenu, hInst, (LPVOID)NULL);
ShowWindow (hwnd, nFunsterStil); while (GetMessage (&messages, NULL, 0, 0)) { TranslateMessage(&messages); DispatchMessage(&messages); } return messages.wParam; }
LRESULT CALLBACK WndProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam) { switch(uMsg) { case WM_CREATE: { CLIENTCREATESTRUCT ccs; ccs.hWindowMenu=GetSubMenu(GetMenu(hwnd),1); ccs.idFirstChild=IDM_WINDOWCHILD; hwndMDI=CreateWindow( "MDICLIENT", (LPCTSTR)NULL, WS_CHILD|WS_CLIPCHILDREN|WS_VSCROLL|WS_HSCROLL, 0,0,0,0, hwnd, (HMENU)IDM_MDICLIENT, hInst, (LPSTR)&ccs); ShowWindow(hwndMDI,SW_SHOW); } break; case WM_COMMAND: { if(LOWORD(wParam)==IDM_BROWSE) { CreateMDI(); } else { return DefFrameProc(hwnd,hwndMDI,uMsg,wParam,lParam); } } break; case WM_CLOSE: { PostQuitMessage(0); } break; case WM_QUIT: { PostQuitMessage(0); } break; default:
return DefFrameProc(hwnd,hwndMDI,uMsg,wParam,lParam); }
return 0; } LRESULT CALLBACK ChildMDI(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam) { switch(uMsg) { case WM_CLOSE: { } return DefMDIChildProc(hwnd,uMsg,wParam,lParam); default: return DefMDIChildProc(hwnd,uMsg,wParam,lParam); } } void CreateMDI() { MDICREATESTRUCT mcs; mcs.szTitle="Fenêtre MDI"; mcs.szClass=szChildDialog; mcs.hOwner=hInst; mcs.x=10; mcs.y=10; mcs.cx=400; mcs.cy=400; mcs.style=0; HWND NewHwndMDI; NewHwndMDI=(HWND)SendMessage(hwndMDI,WM_MDICREATE,0,(LONG)(LPMDICREATESTRUCT)&mcs); }
Ciao
|
|
Cette discussion est classée dans : fenêtre, ws, enfant, usedefault, cw
Répondre à ce message
Sujets en rapport avec ce message
Alternative au style WS_EX_LAYERED sur une fenetre enfant ? [ par shuttleur ]
Bonjour à tous,Je cherche à faire un effet de halo autour d'une fenêtre.Cette fenêtre n'a que sa partie cliente visible. En fait, il me faudrait pouvo
WS_POPUP et focus [ par vecchio56 ]
C'est un problème assez compliqué a expliquer... J'ai remarqué que les menus (obtenus par exemple avec TrackPopupMenu) sont des fenêtre popup (avec le
[Win32] Comment combiner status bar et scroll bar ? [ par beausoleil ]
Bonjour à tous,Voilà mon problème : je cherche à créer une fenêtre possédant à la fois une barre d'état et des barres de défilement.Je crée ma fenêtre
Creation controle sans connaitre largeur [ par fredsor ]
Bonjour,J'aimerais pouvoir créer une fenetre contenant un nombre x de boutons, editbox ou static control, a partir de parametre donnés en entrée. Cepe
Problème de barre de status dans une application MDI [ par julien_boss ]
Bonjour à tous :en réalité, je ne sais pas si mon problème est du à une barre de status, mais étant donné qu'il est apparu après la création de celle-
PB Affichage ListView [ par Taron31 ]
Bonjour, j'ai besoin dans mon programme d'une ListView, problème j'ai cherché pas mal de sources sur ce site et j'en ai essayé et ça n'a pas l'air de
Fenetre par dessus barre des taches [ par SnOOpss ]
Bonjour je galere encore pour choisir mes styles de fenetre. hDlgClient = CreateWindow (szAppName2, TEXT ("Client"), WS_
fenêtre enfant et un edite [ par snpier wolf ]
Bonjour à tous,j'ais fait un petit programme en W32 (c'est mon journal intime )le soussi est que, quand on le lance, la petite fenêtre enfant est bie
Quelques problèmes avec MDI quand plusieurs fenêtres filles [ par ArthurAuguste ]
Bonjour, Tout d'abord, je n'ai aucun problème lorsque je n'ai qu'une fenêtre fille, mais dès que j'en ai une deuxième je commence à avoir des mélanges
Ascenseur vertical [ par ArthurAuguste ]
Bonjour, Me voici encore avec mes questions tordues: Je voudrais que l'ascenseur vertical apparaisse lorsque ma fenêtre est trop petite pour afficher
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|