[MFC] CDialog + Icone Systray + Menu
Bonjour tout le monde,
J'ai remarqué que l'on pouvait mettre une icone dans le systray avec une CMainFrame.
Je désire faire la même chose avec une CDialog. C'est chose faite. Le code est légèrement différent par rapport à ce qui a été posté dans le post [FAQ Visual C++] Demande de collaboration des membres.
1)
Par contre, l'ajout d'un menu ainsi que la création des event handler est différente avec une CDialog. Je ne sais pas comment faire.
Selon la FAQ, il est suggéré d'utiliser:
Code:
1 2 3 4 5 6 7
|
void CMyDialog::OnMenuReduction()
{
m_nCmdShow = SW_SHOWMINIMIZED;
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
} |
Les variables pour la CDialog ne sont pas les bonnes. Ce sont celles d'une CMainframe. Savez vous celles qu'il faut utiliser ?
2) L'icone reste là après la fermeture de l'application malgré l'ajout d'un OnSysCommand(). Il s'agit bien de ON_WM_SYSCOMMAND() dans MESSAGE_MAP ?
Re: [MFC] CDialog + Icone Systray + Menu
Citation:
Envoyé par rockthat
Bonjour tout le monde,
J'ai remarqué que l'on pouvait mettre une icone dans le systray avec une CMainFrame.
Je désire faire la même chose avec une CDialog. C'est chose faite. Le code est légèrement différent par rapport à ce qui a été posté dans le post [FAQ Visual C++] Demande de collaboration des membres.
1)
Par contre, l'ajout d'un menu ainsi que la création des event handler est différente avec une CDialog. Je ne sais pas comment faire.
Selon la FAQ, il est suggéré d'utiliser:
Code:
1 2 3 4 5 6 7
|
void CMyDialog::OnMenuReduction()
{
m_nCmdShow = SW_SHOWMINIMIZED;
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
} |
Les variables pour la CDialog ne sont pas les bonnes. Ce sont celles d'une CMainframe. Savez vous celles qu'il faut utiliser ?
2) L'icone reste là après la fermeture de l'application malgré l'ajout d'un OnSysCommand(). Il s'agit bien de ON_WM_SYSCOMMAND() dans MESSAGE_MAP ?
salut,
quelles variables ?
la mainframe pour une application boite de dialogue c'est ... la dialogue elle meme .
on peut affirmer la chose suivante dans la dialogue:
Code:
1 2
|
ASSERT(AfxGetMainWnd()==this); // ne provoque pas d'erreur en debug. |
tu peux donc enlever m_pMainWnd.
:D