bonjour, mon problème et que je veux metre à jour l'affichage des controls dans mon dialog, j'ai utiliser OnInitDialog() dans un Thread mais sa ne marche pas car elle est protegée. Help please

mon code parcoure un disque tout en affichant les roots des fichiers

voilà mon code, sa vous aideras a mieux comprendre
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
 
 
 /////////////////////////////////////////////////////////////////////////////
// CVProject0Dlg dialog
 
CVProject0Dlg::CVProject0Dlg(CWnd* pParent /*=NULL*/)
    : CDialog(CVProject0Dlg::IDD, pParent)
{
    //{{AFX_DATA_INIT(CVProject0Dlg)
    //}}AFX_DATA_INIT
    // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
    m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
 
void CVProject0Dlg::DoDataExchange(CDataExchange* pDX)
{
    CDialog::DoDataExchange(pDX);
    //{{AFX_DATA_MAP(CVProject0Dlg)
    DDX_Control(pDX, IDC_EDIT4, m_Disque);
    DDX_Control(pDX, IDC_EDIT3, m_Vnbr);
    DDX_Control(pDX, IDC_EDIT2, m_Fnbr);
    DDX_Control(pDX, IDC_EDIT1, m_str);
    //}}AFX_DATA_MAP
}
 
BEGIN_MESSAGE_MAP(CVProject0Dlg, CDialog)
    //{{AFX_MSG_MAP(CVProject0Dlg)
    ON_WM_PAINT()
    ON_WM_QUERYDRAGICON()
    //}}AFX_MSG_MAP
END_MESSAGE_MAP()
 
/////////////////////////////////////////////////////////////////////////////
// CVProject0Dlg message handlers
 
BOOL CVProject0Dlg::OnInitDialog()
{
    CDialog::OnInitDialog();
 
    // Set the icon for this dialog.  The framework does this automatically
    //  when the application's main window is not a dialog
    SetIcon(m_hIcon, TRUE);            // Set big icon
    SetIcon(m_hIcon, FALSE);        // Set small icon
 
    // TODO: Add extra initialization here
 
    ////////////////////////////////////////////////////////////////////////////
    CString c=variable::global; 
    int a=variable::Fnbr;
    int b=variable::Vnbr;
    UpdateData(TRUE);
    m_str.SetWindowText(c);
    SetDlgItemInt(IDC_EDIT2,a,TRUE);
    SetDlgItemInt(IDC_EDIT3,b,TRUE);
    return TRUE;  // return TRUE  unless you set the focus to a control
}
 
// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.
 
 
void CVProject0Dlg::OnPaint() 
{
    if (IsIconic())
    {
        CPaintDC dc(this); // device context for painting
 
        SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
 
        // Center icon in client rectangle
        int cxIcon = GetSystemMetrics(SM_CXICON);
        int cyIcon = GetSystemMetrics(SM_CYICON);
        CRect rect;
        GetClientRect(&rect);
        int x = (rect.Width() - cxIcon + 1) / 2;
        int y = (rect.Height() - cyIcon + 1) / 2;
 
        // Draw the icon
        dc.DrawIcon(x, y, m_hIcon);
    }
    else
    {
        CDialog::OnPaint();
    }
}
 
// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
 
 
// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CVProject0Dlg::OnQueryDragIcon()
{
    return (HCURSOR) m_hIcon;
}
 
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
UINT UpDate(LPVOID pParam)
{
    int condit=0;
    while (condit==0)
    {
    CVProject0Dlg::OnInitDialog();
    }
    return 0;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
UINT TheThread(LPVOID pParam)
{
    Recurse(variable::Disque);
    AfxMessageBox("Analyse Terminer");
    return 0;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
void CVProject0Dlg::OnOK() 
{
// TODO: Add extra validation here
    if (variable::condition==0)
        {
            variable::condition=1;
            variable::Fnbr=0;
            variable::Vnbr=0;
            m_Disque.GetWindowText(variable::Disque);
            AfxBeginThread(TheThread,GetSafeHwnd(),THREAD_PRIORITY_NORMAL);
            AfxBeginThread(UpDate,GetSafeHwnd(),THREAD_PRIORITY_NORMAL);
            }
 
}
la prochaine fois utilise la balise de code, Merci Farscape