Bonjour,
J'ai une fenetre fille sur laquelle je voudrais cliquer. Mais voilà le click ne fonctionne que sur la fenetre parent
merci et à bientôt
Bonjour,
J'ai une fenetre fille sur laquelle je voudrais cliquer. Mais voilà le click ne fonctionne que sur la fenetre parent
merci et à bientôt
bonjour ,
euh ça manque un peu de precisions non ?
le type des fenetres en jeux etc...
![]()
Ce qui est affirmé sans preuve peut être nié sans preuve Euclide.
Les conversions numériques en C,C++,C++/CLI
DLL d'extensions : écriture d'un plug-in de classe
Démarrer avec les MFC 2/2
Création d'un ActiveX MFC
Intégration d'une imprimante PDF pour éditions automatisées
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
Démarrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
Bonjour,
En fait à partir d'un monitoring video sur une clientArea de 800*600 j'ai créé une classe Photo representant une fenêtre fille de 360*291 soit a peu pres 1/4 de ma fenetre parent, le but étant de créer 4 fenêtres filles.
Donc je cherche à savoir comment je peux fermer la fenêtre fille en videolive en cliquant dessus.
@+ merci
il s'agit en fait de fenêtre hWnd
@+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 hWnd = CreateWindow("WinUraWC", "WinUra", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hIns, NULL); ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); if (!Photo0.Create(hIns, hWnd)) return 0; if (!Init(Photo0.hWnd)) return 0; ForceClientAreaSize(hWnd, 720, 578); hAccel = LoadAccelerators(hInst, MAKEINTRESOURCE(IDC_WinUra)); SetTimer(hWnd, 0, 1000, NULL); while(GetMessage(&msg, NULL, 0, 0)) { if ((hAccel == NULL) || !TranslateAccelerator(hWnd, hAccel, &msg)) { TranslateMessage(&msg); DispatchMessage(&msg); } } trace("Sortie de la boucle des messages\n"); Term(Photo0.hWnd); return msg.wParam; }
et bien il faut travailler dans la callback de la fenetre, que tu as défini lors du RegisterClass
pas d'erreur à la compil et pourtant:
çiao[/b]
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 LRESULT CALLBACK WinPhotoProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch( message ) case WM_COMMAND: switch( wParam ) { case WM_LBUTTONDOWN: trace("Terminaison\n"); UranieStopMonitoring(hUranie, hWnd); [color=orange]Ca le fait pas[/color] return 0; default: break; } return DefWindowProc( hWnd, message, wParam, lParam ); }
de tete, je dirais qu'il faut traiter le WM_LBUTTONDOWN comme un message, et non comme un wParam, c'est à dire au meme titre que ton WM_COMMAND
cad comme çà
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 LRESULT CALLBACK WinPhotoProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch( message ) case WM_COMMAND: switch(LOWORD(wParam)) g modifié comme cà { case WM_LBUTTONDOWN: trace("Terminaison\n"); UranieStopMonitoring(hUranie, hWnd); ca le fait tjs pas return 0; default: break; } return DefWindowProc( hWnd, message, wParam, lParam ); }[color=orange][/color]
g capté ton msg, g corrigé comme ceci mais![]()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 LRESULT CALLBACK WinPhotoProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch( message ) case WM_COMMAND: switch(message) <---- { case WM_LBUTTONDOWN: trace("Terminaison\n"); UranieStopMonitoring(hUranie, hWnd); return 0; default: break; } return DefWindowProc( hWnd, message, wParam, lParam ); }
voici la def de la fenêtre client, ne fo til pas rajouter une option mouse dans le CreateWindow
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 bool CPhoto::Create(HINSTANCE hInst, HWND hParent) { if (hWnd != NULL) return false; hParentWnd = hParent; hWnd = CreateWindow("Photo", "", WS_CHILD | WS_BORDER, 0, 0, 360, 291, hParentWnd, NULL, hInst, NULL); if (hWnd != NULL) ShowWindow(hWnd, SW_SHOW); return (hWnd != NULL); }
plutot un truc du genre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 LRESULT CALLBACK WinPhotoProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch( message ) { case WM_COMMAND: // ... break; case WM_LBUTTONDOWN: trace("Terminaison\n"); UranieStopMonitoring(hUranie, hWnd); return 0; } return DefWindowProc( hWnd, message, wParam, lParam ); }
Partager