2 Questions : icone fenetre & Taille...

clabe Messages postés 12 Date d'inscription mardi 4 avril 2006 Statut Membre Dernière intervention 31 juillet 2006 - 31 juil. 2006 à 16:15
trafounet Messages postés 37 Date d'inscription samedi 20 novembre 2004 Statut Membre Dernière intervention 20 décembre 2006 - 31 juil. 2006 à 23:02
Bonjour,


Je voudrais savoir comment je pourrais tout d'abord changer l'icone dans la barre de titre de ma fenetre...


Ensuite j'aurais aimé savoir comment faire pour empecher l'utilisateur de redimensionner la fenetre ou de la maximizer..


Le tout sachant que je travaille avec Dev C++


Voilà...


Merci d'avance...

Clabe



PS : Voici le début de la source que j'utilise (c'ets le morceau qui me semble important...)



<ol class="csCode">
<li>
HWND conteneur;
</li>
<li>
 
</li>
<li>

<samp>/***************** Procédure de notre fenêtre principale *********************/</samp>

</li>
<li>
LRESULT CALLBACK WndProc( HWND hWnd, UINT messg, WPARAM wParam, LPARAM lParam )
</li>
<li>
{    
</li>
<li>
    
switch
(messg)
</li>
<li>
    {
</li>
<li>
        
case
WM_SIZE:
</li>
<li>
            <samp>// Redimensionnement du conteneur quand la taille de la fenêtre change:</samp>
</li>
<li>
            MoveWindow(conteneur,0,0,LOWORD(lParam),
HIWORD(lParam),1);
</li>
<li>
            
break
;
</li>
<li>
        
</li>
<li>
        
case
WM_CLOSE:
</li>
<li>
            <samp>// Détruire la fenêtre principale:</samp>
</li>
<li>
            DestroyWindow(hWnd);
</li>
<li>
            
break
;
</li>
<li>
 
</li>
<li>
        
case
WM_DESTROY:
</li>
<li>
            <samp>// Envoyer le message de sortie du programme:</samp>
</li>
<li>
            PostQuitMessage( 0 );
</li>
<li>
            
break
;
</li>
<li>
    
</li>
<li>
        
default
:
</li>
<li>
            <samp>//Retour:</samp>
</li>
<li>
            
return
( DefWindowProc( hWnd, messg, wParam, lParam ) );
</li>
<li>
    }
</li>
<li>
    
return
0;
</li>
<li>
}
</li>
<li>

<samp>/***************************************************************************/</samp>

</li>
<li>
 
</li>
<li>

<samp>/********************* Fonction WinMain ************************************************/</samp>

</li>
<li>

int
WINAPI WinMain( HINSTANCE hInst,HINSTANCE hPreInst,LPSTR lpszCmdLine,
int
nCmdShow )
</li>
<li>
{
</li>
<li>
    <samp>// Déclarer notre classe de fenêtre et définir ses membres:</samp>
</li>
<li>
    WNDCLASS wc;
</li>
<li>
    
char
NomClasse[] = <var>"Conteneur"</var>;
</li>
<li>
    wc.lpszClassName = NomClasse;
</li>
<li>
    wc.hInstance      = hInst;
</li>
<li>
    wc.lpfnWndProc     = WndProc;
</li>
<li>
    wc.hCursor = LoadCursor( 0, IDC_ARROW );
</li>
<li>
    wc.hIcon     = LoadIcon( 0, IDI_APPLICATION );
</li>
<li>
    wc.lpszMenuName     = 0;
</li>
<li>
    wc.hbrBackground = 0;
</li>
<li>
    wc.style     = 0;
</li>
<li>
    wc.cbClsExtra     = 0;
</li>
<li>
    wc.cbWndExtra        = 0;
</li>
<li>
    <samp>// Enregistrer la classe de notre fenêtre:</samp>
</li>
<li>
    
if
(!RegisterClass(&wc))
return
0;
</li>
<li>
 
</li>
<li>
    <samp>// Créer notre fenêtre principale:</samp>
</li>
<li>
    HWND hWnd = CreateWindow( NomClasse,<var>"Conteneur Activex"</var>,WS_OVERLAPPEDWINDOW,0,0,800,575, 0, 0, hInst,0);
</li>
<li>
    <samp>// Montrer la fenêtre:</samp>
</li>
<li>
    ShowWindow(hWnd, nCmdShow );
</li>
<li>
    UpdateWindow( hWnd );
</li>
</ol>

8 réponses

racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
31 juil. 2006 à 16:41
Salut,

Pour changer l'icone de la barre de titre, il suffit de mettre l'icone
que tu veux en ressource, puis l'affecter au membre hIcon de la
structure WNDCLASS:

wc.hIcon            = LoadIcon( hInst, MAKEINTRESOURCE(ID_ICON) );


Pour la fenêtre qu'on ne peut ni redimentionner ni minimiser, il faut lui appliquer le style WS_SYSMENU seul:


HWND hWnd = CreateWindow( NomClasse,<var>"Conteneur Activex"</var>, WS_SYSMENU, 0, 0, 800,575, 0, 0,

hInst


,0);
0
clabe Messages postés 12 Date d'inscription mardi 4 avril 2006 Statut Membre Dernière intervention 31 juillet 2006
31 juil. 2006 à 16:59
Merci...

Pour l'icone j'ai aps encore testé mais déjà pour le maximize bouton, c'ets plus ou moins ce que je cherche...


Le problème c'est que le bouton minimize doit rester et la il reste pas...

En gros il doit y avoir le bouton X (close) et le bouton de
minimization (le bouton maximize peut etre là mais doit etre inactif)...
0
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
31 juil. 2006 à 18:03
Tu ajoutes le style WS_MINIMIZEBOX :
HWND hWnd = CreateWindow( NomClasse,<var>"Conteneur Activex"</var>, WS_SYSMENU | WS_MINIMIZEBOX , 0, 0, 800,575, 0, 0, hInst
,0);
0
clabe Messages postés 12 Date d'inscription mardi 4 avril 2006 Statut Membre Dernière intervention 31 juillet 2006
31 juil. 2006 à 18:13
Ok merci beaucoup...

Pour le maximize box c'ets nickel...


Maintenant comment je fais pour mettre une icone en ressource ?


Merci d'avance...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
31 juil. 2006 à 19:52
Ouvre le Bloc-Notes. Tape ceci dedans:

ID_ICON   ICON  "monicone.ico"

Sauvegarde le fichier en lui donnant l'extension .rc  Par exemple "res.rc".
Ajoute ce fichier à ton projet.

Dans le winmain tu fais:
wc.hIcon  =  LoadIcon( hInst, "ID_ICON" );

Les fichiers "monicone.ico" et "res.rc" doivent figurer dans le même dossier du projet.

Voilà. C'est la méthode la plus simple.
0
trafounet Messages postés 37 Date d'inscription samedi 20 novembre 2004 Statut Membre Dernière intervention 20 décembre 2006
31 juil. 2006 à 21:39
si tu veux empecher le redimensionnement en interceptant le message, il faut le faire sur WM_SIZING et pas pas WM_SIZE  (sinon ca redimensionne la fenetre apres l'avoir deja redimensionner, et ca clignote beaucoup :'( )
0
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
31 juil. 2006 à 22:58
trafounet >> Pour rendre une fenêtre non redimensionnable, il suffit de ne pas lui appliquer le style WS_THICKFRAME.  Le style WS_OVERLAPPEDWINDOW inclut ce style entre autres.
0
trafounet Messages postés 37 Date d'inscription samedi 20 novembre 2004 Statut Membre Dernière intervention 20 décembre 2006
31 juil. 2006 à 23:02
C'est au cas ou il veuille pouvoir redimensionner sa fenetre jusqu'à un certain point par exemple ;)
0
Rejoignez-nous