Appeler une fonction DialogBoxIndirect

windowsfashion Messages postés 55 Date d'inscription jeudi 21 avril 2005 Statut Membre Dernière intervention 2 juin 2007 - 20 févr. 2006 à 13:16
racpp Messages postés 1910 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 - 21 févr. 2006 à 00:56
Bonjour



Ya t'il une autre façon d'appeler une fenetre que par DialogBoxIndirect(0,lpdt,NULL,(DLGPROC)log); ?

Je voudrai appeler cette fonction sans que la barre de titre soit affichée. ( pour que le boite de dialogue soit caché qoi...)



Merci

4 réponses

racpp Messages postés 1910 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 15
20 févr. 2006 à 14:12
Salut,

DialogBoxIndirect() crée plutot une boite de dialogue et non une fenêtre.

Pour que la barre de titre ne soit pas affichée, ne mets pas le style WS_CAPTION:

lpdt->style = WS_POPUP | WS_BORDER | DS_MODALFRAME ;

J'espère avoir bien compris ta question.
0
windowsfashion Messages postés 55 Date d'inscription jeudi 21 avril 2005 Statut Membre Dernière intervention 2 juin 2007
20 févr. 2006 à 22:30
merci pour ton aide

sa marche mais le probléme c'est qu'on voit toujours dans la barre des tâches la fenetre.



Je gére pas trop les boîtes dialogue en cpp



Comment fai t'on pour appeler une fonction comme celle ci sans qu'on puisse la voir:



log( HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam )



?



mon main est ainsi:



int main(int argc, char* argv[])

{

LPDLGTEMPLATE lpdt = ( LPDLGTEMPLATE) GlobalAlloc(GPTR, 512);

DialogBoxIndirect(0,lpdt,NULL,(DLGPROC)keylog);

return 0;

}
0
windowsfashion Messages postés 55 Date d'inscription jeudi 21 avril 2005 Statut Membre Dernière intervention 2 juin 2007
20 févr. 2006 à 22:30
merci pour ton aide

sa marche mais le probléme c'est qu'on voit toujours dans la barre des tâches la fenetre.



Je gére pas trop les boîtes dialogue en cpp



Comment fai t'on pour appeler une fonction comme celle ci sans qu'on puisse la voir:



log( HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam )



?



mon main est ainsi:



int main(int argc, char* argv[])

{

LPDLGTEMPLATE lpdt = ( LPDLGTEMPLATE) GlobalAlloc(GPTR, 512);

DialogBoxIndirect(0,lpdt,NULL,(DLGPROC)keylog);

return 0;

}
0
racpp Messages postés 1910 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 15
21 févr. 2006 à 00:56
Pour faire disparaitre une fenêtre de la barre des taches, je connais
la solution utilisant l'interface ITaskbarList. Voici un exemple d'une
fonction :

#include <windows.h>

#include <shobjidl.h>

BOOL HideShow(HWND hwnd, int action)

{

if(!hwnd) return 0;

CoInitialize(0);

ITaskbarList* pitl;

CoCreateInstance(CLSID_TaskbarList,0,CLSCTX_ALL,IID_ITaskbarList,(void**)&pitl);

if(!action) pitl->DeleteTab(hwnd);

else pitl->AddTab(hwnd);

pitl->Release();

CoUninitialize();

return 1;

}

Le premier paramètre est le HWND d'une fenêtre ou d'une boite de dialogue.

Le deuxième paramètre indique l'action à faire: 0= cacher 1= montrer.

Pour cacher ta boite de dialogue tu l'appelles comme ceci:

HideShow(hDlg,0);
0