amarhys
25/11/2005, 19h25
Bonjour à tous,
J'ai une application sous DirectDraw (je sais, c'est un peu vieillot DirectDraw mais au moins c'est pas trop compliqué alors je comprends :00000023: ) et j'aimerais ouvrir une DialogBox ... et bien vous me croirez si vous voulez mais ça ne marche pas (du moins avec moi).
J'ai crée le device Directdraw avec le code suivant :
HINSTANCE hInst;
LPDIRECTDRAW lpDD;
....
....
HRESULT ddrval ;
ddrval = DirectDrawCreate(NULL, &lpDD, NULL) ;
if ( ddrval != DD_OK )
return false;
ddrval = lpDD->SetCooperativeLevel(hwnd, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN ) ;
if ( ddrval != DD_OK )
{
lpDD->Release();
return false;
}
ddrval = lpDD->SetDisplayMode(WnWIDTH, WnHEIGHT, 16);
if ( ddrval != DD_OK )
{
lpDD->Release();
return false;
}
puis une surface primaire et un back buffer (j'ai suivi à la lettre les conseils donnés par Microsoft dans les tutoriaux DirectX7, et d'ailleurs ça marche bien pour tout ce qui est "purement" graphique...)
et ensuite je tente d'ouvrir une boite de dialogue de la manière suivante :
DialogBox(hInst, (LPCTSTR)IDD_CLKAREA, hWnd, (DLGPROC)ClkArea);
sachant que tous les paramètres sont définis et semblent valides : la ressource IDD_CLKAREA, la CALLBACK ClkArea, les handlers hInst et hWnd (l'affichage de la boite de dialogue fonctionne avec le même code sous le GDI WIN32 standard, ça ne fonctionne plus depuis que j'ai activé DirectDraw)
Sous DirectDraw, rien ne s'affiche. Par contre, il semble que la boite de dialogue soit là, présente virtuellement car les raccourcis clavier des touches "OK", "CANCEL" etc.. fonctionnent... mais je ne la voit pas.
Quelqu'un a t'il une idée ? Peut être le mode EXCLUSIVE et FULLSCREEN de directdraw ?
En tous cas, merci d'avance à celui qui pourra m'aider.
Amarhys
J'ai une application sous DirectDraw (je sais, c'est un peu vieillot DirectDraw mais au moins c'est pas trop compliqué alors je comprends :00000023: ) et j'aimerais ouvrir une DialogBox ... et bien vous me croirez si vous voulez mais ça ne marche pas (du moins avec moi).
J'ai crée le device Directdraw avec le code suivant :
HINSTANCE hInst;
LPDIRECTDRAW lpDD;
....
....
HRESULT ddrval ;
ddrval = DirectDrawCreate(NULL, &lpDD, NULL) ;
if ( ddrval != DD_OK )
return false;
ddrval = lpDD->SetCooperativeLevel(hwnd, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN ) ;
if ( ddrval != DD_OK )
{
lpDD->Release();
return false;
}
ddrval = lpDD->SetDisplayMode(WnWIDTH, WnHEIGHT, 16);
if ( ddrval != DD_OK )
{
lpDD->Release();
return false;
}
puis une surface primaire et un back buffer (j'ai suivi à la lettre les conseils donnés par Microsoft dans les tutoriaux DirectX7, et d'ailleurs ça marche bien pour tout ce qui est "purement" graphique...)
et ensuite je tente d'ouvrir une boite de dialogue de la manière suivante :
DialogBox(hInst, (LPCTSTR)IDD_CLKAREA, hWnd, (DLGPROC)ClkArea);
sachant que tous les paramètres sont définis et semblent valides : la ressource IDD_CLKAREA, la CALLBACK ClkArea, les handlers hInst et hWnd (l'affichage de la boite de dialogue fonctionne avec le même code sous le GDI WIN32 standard, ça ne fonctionne plus depuis que j'ai activé DirectDraw)
Sous DirectDraw, rien ne s'affiche. Par contre, il semble que la boite de dialogue soit là, présente virtuellement car les raccourcis clavier des touches "OK", "CANCEL" etc.. fonctionnent... mais je ne la voit pas.
Quelqu'un a t'il une idée ? Peut être le mode EXCLUSIVE et FULLSCREEN de directdraw ?
En tous cas, merci d'avance à celui qui pourra m'aider.
Amarhys