OVH Cloud OVH Cloud

Excel dans un CDialog...

3 réponses
Avatar
Chevalley J.-C
Bonjour,
Je désire intégrer une page Excel dans un CDialog. Est-il facile de le faire
sans utiliser d'ActiveX? j'utilise MFC +VS .net. J'ai trouvé des exemples
pour piloter Excel (Automatisation) mais pas pour intégrer excel dans mon
dialogue.
Merci, Jean-Claude

3 réponses

Avatar
Christian ASTOR
Chevalley J.-C wrote:

Je désire intégrer une page Excel dans un CDialog. Est-il facile de le faire
sans utiliser d'ActiveX? j'utilise MFC +VS .net. J'ai trouvé des exemples
pour piloter Excel (Automatisation) mais pas pour intégrer excel dans mon
dialogue.



Il faut forcément un ActiveX si on veut la sheet identique, mais ça
peut-être transparent
Par ex avec ATL (AtlAxWinInit(), "AtlAxWin" class, et il n'y a rien à
faire, cf KB192560)
Avatar
Chevalley J.-C
Merci, j'ai essayé mais je dois faire qqch. de faux car CreateWindow(..) me
retourne NULL avec GetLastError07 ie. "Cannot find window class". je pens
que ça veut dire qu'il ne connait pas "AtlAxWin"? est-ce-que c'est parceque
j'uitlise .net?



Application MFC de style dialogue:

// AtlAxWinInit is implemented in Atl.dll
#pragma comment(lib, "atl.lib")
#include <atldef.h>
#define _ATL_DLL_IMPL
#include <atliface.h>

BOOL CMon_testDlg::OnInitDialog()
{
AtlAxWinInit();
CDialog::OnInitDialog();
...
}

et

BOOL CMon_testDlg::OnBnClickedButton1()
{
HWND hWnd = ::CreateWindow("AtlAxWin",
"http://www.microsoft.com",WS_CHILD|WS_VISIVLE,0,0,500,500,m_hWnd,NULL,::Get
ModuleHandle(NULL),NULL);
}






Chevalley J.-C wrote:

> Je désire intégrer une page Excel dans un CDialog. Est-il facile de le


faire
> sans utiliser d'ActiveX? j'utilise MFC +VS .net. J'ai trouvé des


exemples
> pour piloter Excel (Automatisation) mais pas pour intégrer excel dans


mon
> dialogue.

Il faut forcément un ActiveX si on veut la sheet identique, mais ça
peut-être transparent
Par ex avec ATL (AtlAxWinInit(), "AtlAxWin" class, et il n'y a rien à
faire, cf KB192560)


Avatar
Christian ASTOR
Chevalley J.-C wrote:

Merci, j'ai essayé mais je dois faire qqch. de faux car CreateWindow(..) me
retourne NULL avec GetLastError07 ie. "Cannot find window class". je pens
que ça veut dire qu'il ne connait pas "AtlAxWin"? est-ce-que c'est parceque
j'uitlise .net?



Oui, les noms de classes ont changé.
(AtlAxWin71 ou AtlAxWin7, ...)