Bonjour à tous,
je vous explique mon petit souci : j'ai une boîte de dialogue CDialog à partir de laquelle je lance un Thread de Travail en cliquant sur un bouton.
De ce côté-là, tout va bien, j'ai fait une méthode LRESULT, j'ai ajouté ON_MESSAGE dans le message map, j'ai défini un message windows WM_APP+1.
Quand je lance mon Thread, j'aimerais utiliser une classe C++ que j'ai faite.
Le problème est comment j'utilise PostMessage pour envoyer des infos concernant la mise à jour des contrôles visuels (barre de progression...).
En effet, quand je met le code de ma classe directement dans le thread, ça marche parce que le message WM_APP+1 est défini dans la classe CDialog.
Mais si je crée une instance de ma classe dans le thread, alors je n'ai plus accès au message WM_APP+1 car il est privé.
Un petit bout de code juste histoire de :
J'espère avoir été clair. Merci d'avance pour votre aide.
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 // CDialog.cpp #include "CDialog.h" #include "FEMU.h" #define WM_MESSAGE WM_APP+1 static UINT Thread(void *pParam) { FEMU test(pParam); // instance de ma classe FEMU dans le thread return 0; } // FEMU.cpp FEMU::FEMU(void *pParam) { PostMessage(???) }
Partager