begin process at 2012 05 30 11:40:26
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Graphique

 > 

STATIC, SetWindowText et icone[Dev-C++]


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

STATIC, SetWindowText et icone[Dev-C++]

lundi 27 juin 2005 à 19:57:47 | STATIC, SetWindowText et icone[Dev-C++]

mastermatt29

Salut tout le monde !!

Il se trouve que j'ai un problème avec mon code ! Premierement j'ai un static, déclaré avec CreateWindowEx(...). Je lui ai donc fait afficher du texte à sa création grace à cette fonction. Pourtant lorsque je veut changer ce texte en utilisant SetWindowText(...), le nouveau texte est superposé à l'ancien, et ne le remplace pas ! D'ou vient le problème ?

Mon deuxieme probleme est un probleme d'icone. Avec Dev-C++ j'utilise simplement Projet->Options du projet et la je choisi l'icone. Cependant cette icone s'affiche pour l'exe, mais pas en haut à gauche.

Merci à tous ceux qui pourront m'aider


La connaissance se doit d'être partagée...
lundi 27 juin 2005 à 20:19:37 | Re : STATIC, SetWindowText et icone[Dev-C++]

vecchio56

Administrateur CodeS-SourceS
Pour le premier problème je dois mal comprendre, c'est la première fois que j'entends ca! Pour le pb d'icone, ca dépend: -Si c'est une fenêtre créée avec RegisterClassEx/CreateWindowEx, c'est WNDCLASSEX::hIconSm qui contient l'icone -Si c'est un dialog, tu peux modifier l'icone dans WM_INITDIALOG avec SetClassLong(hDlg, GCLP_HICONSM, hicon)
lundi 27 juin 2005 à 20:35:51 | Re : STATIC, SetWindowText et icone[Dev-C++]

mastermatt29

Non non je t'assure, les deux textes se superposent, l'un au dessus de l'autre ! Moi aussi je trouve ca bizarre !

Pour l'icone, Dev-C++ gère ca avec
    wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);


La connaissance se doit d'être partagée...
lundi 27 juin 2005 à 20:45:27 | Re : STATIC, SetWindowText et icone[Dev-C++]

vecchio56

Administrateur CodeS-SourceS
http://vecchio56.free.fr/static.rar Pas de superposition
lundi 27 juin 2005 à 22:49:20 | Re : STATIC, SetWindowText et icone[Dev-C++]

Xaviou

pour ton icône, il faut remplacer le code de devc++ par :
wincl.hIcon=LoadIcon(hInstance,MAKEINTRESOURCE(IDI_MON_ICONE))
idem pour wincl.hIconSm

hInstance doit avoir pour valeur celle du premier paramètre de WinMain
IDI_MON_ICONE est l'identifiant de l'icône que tu veux utiliser


Pour ce qui est du problème avec le Static, vérifies que tu ne rapelles pas CreateWindow au lieu de SetWindowText, ou que tu ne crées pas deux fois le même contrôle lors de la création de la fenêtre. Je ne vois que ça, car sinon, Le fait d'utiliser SetWindowText redessine complètement le Static, et l'ancien texte disparaît.

Si tu bloques, envoies-moi ton code, j'y jetterai un coup d'oeil.

mardi 28 juin 2005 à 09:13:15 | Re : STATIC, SetWindowText et icone[Dev-C++]

mastermatt29

@Xaviou
Pour l'icone j'ai le droit un petit " [Warning] cast from pointer to integer of different size ", mais merci quand meme de t'y intéresser !

@vecchio56
En effet dans ton code je n'ai pas de superposition, alors que dans le mien j'en ai ! J'ai vérifié, la fonction de création n'est appelée qu'une fois ! Je te file quand meme la partie de la création :

@all
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)              /* handle the messages */
    {
        case WM_CREATE:
            static HWND hText;

            hText = CreateWindowEx (
                       0,
                       "STATIC",      
                       NULL,
                       WS_VISIBLE|WS_CHILD|SS_SIMPLE,
                       10,10,
                       500,20,
                       hwnd,
                       (HMENU)ID_TEXT,
                       hInstance,
                       NULL
                       );

................................................................................
}

Sachant que la fenetre principale hwnd est crée dans WinMain(...).


La connaissance se doit d'être partagée...
mardi 28 juin 2005 à 13:42:25 | Re : STATIC, SetWindowText et icone[Dev-C++]

mastermatt29

Pffff je comprend rien !! J'ai essayé en remplacant CreateWindowEx par CreateWindow, j'ai testé en mettant le texte après la création.......... Et le plus bizarre c'est que ca marche sur mes EDIT, mais pas sur mes STATIC, pourtant tous créé dans les memes conditions !

Quelqu'un aurait-il une idée ???


La connaissance se doit d'être partagée...
mardi 28 juin 2005 à 13:52:41 | Re : STATIC, SetWindowText et icone[Dev-C++]

vecchio56

Administrateur CodeS-SourceS
Il faudrait un code complet pour voir, car ce problème n'est pas normal
mardi 28 juin 2005 à 14:15:53 | Re : STATIC, SetWindowText et icone[Dev-C++]

mastermatt29

Pas de problèmes :

#include <windows.h>
#include <commctrl.h>
#include <stdio.h>


/* Declare Windows procedure  */
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);

/* Make hThisInstance global */
HINSTANCE hInstance;

char szClassName[] = "MonProg";

int WINAPI WinMain (HINSTANCE hThisInstance,
                    HINSTANCE hPrevInstance,
                    LPSTR lpszArgument,
                    int nFunsterStil)

{
    HWND hwnd;                 /* This is the handle for our window */
    MSG messages;              /* Here messages to the application are saved */
    WNDCLASSEX wincl;          /* Data structure for the windowclass */

    hInstance = hThisInstance;

    /* The Window structure */
    wincl.hInstance = hThisInstance;
    wincl.lpszClassName = szClassName;
    wincl.lpfnWndProc = WindowProcedure;      /* This function is called by windows */
    wincl.style = CS_DBLCLKS;                 /* Catch double-clicks */
    wincl.cbSize = sizeof (WNDCLASSEX);

    /* Use default icon and mouse-pointer */
    wincl.hIcon = LoadIcon (hThisInstance, IDI_APPLICATION);
    wincl.hIconSm = LoadIcon (hThisInstance, IDI_APPLICATION);
    wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
    wincl.lpszMenuName = NULL;                 /* No menu */
    wincl.cbClsExtra = 0;                      /* No extra bytes after the window class */
    wincl.cbWndExtra = 0;                      /* structure or the window instance */
    /* Use Windows's default color as the background of the window */
    wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;

    /* Register the window class, and if it fails quit the program */
    if (!RegisterClassEx (&wincl))
        return EXIT_FAILURE;
       
    /* Init the sockets */
    WSADATA WSAData;
    WSAStartup(MAKEWORD(2,0), &WSAData);

    /* The class is registered, let's create the program*/
    hwnd = CreateWindowEx (
           0,                   /* Extended possibilites for variation */
           szClassName ,        /* Classname */
           szClassName,         /* Title Text */
           WS_OVERLAPPEDWINDOW, /* default window */
           CW_USEDEFAULT,       /* Windows decides the position */
           CW_USEDEFAULT,       /* where the window ends up on the screen */
           320,                 /* The programs width */
           300,                 /* and height in pixels */
           HWND_DESKTOP,        /* The window is a child-window to desktop */
           NULL,                /* No menu */
           hThisInstance,       /* Program Instance handler */
           NULL                 /* No Window Creation data */
           );

    /* Make the window visible on the screen */
    ShowWindow (hwnd, nFunsterStil);

    /* Used for the progress bar */
    InitCommonControls();
   
    /* Run the message loop. It will run until GetMessage() returns 0 */
    while (GetMessage (&messages, NULL, 0, 0))
    {
        /* Translate virtual-key messages into character messages */
        TranslateMessage(&messages);
        /* Send message to WindowProcedure */
        DispatchMessage(&messages);
    }

    /* The program return-value is 0 - The value that PostQuitMessage() gave */
    return messages.wParam;
}


/*  This function is called by the Windows function DispatchMessage()  */

LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    static HWND hTopText,
    hPeerText,     /* Static */       
    hConfig,       /* Bouton */
    hProgressBar;  /* Progress bar (pas initialisée) */
   
       
    switch (message)              /* handle the messages */
    {
        case WM_CREATE:
            hTopText = CreateWindowEx (
                       0,
                       "STATIC",      
                       NULL,
                       WS_VISIBLE|WS_CHILD|SS_SIMPLE,
                       10,10,
                       500,20,
                       hwnd,
                       (HMENU)1,
                       hInstance,
                       NULL
                       );

            hPeerText = CreateWindowEx(
                       0,
                       "STATIC",      
                       "Premier texte",
                       WS_VISIBLE|WS_CHILD|SS_SIMPLE,
                       10,90,
                       320,20,
                       hwnd,
                       (HMENU)2,
                       hInstance,
                       NULL
                       );
  
            hConfig = CreateWindowEx(
                       0,
                       "BUTTON",      
                       "Config",
                       WS_VISIBLE|WS_CHILD|WS_BORDER,
                       220,160,
                       80,30,
                       hwnd,
                       (HMENU)3,
                       hInstance,
                       NULL
                       );
            break;   
        case WM_DESTROY:
            PostQuitMessage (0);       /* send a WM_QUIT to the message queue */
            break;
        case WM_COMMAND:
            switch(LOWORD(wParam))
            {
                   case 3:
               SetWindowText(hPeerText, "Deuxieme texte");
               break;
                   default:
                       break;
            }
            break;
        case WM_CTLCOLORSTATIC:
            SetBkMode((HDC)wParam, TRANSPARENT);
        default:                      /* for messages that we don't deal with */
            return DefWindowProc (hwnd, message, wParam, lParam);
    }

    return 0;
}


Garanti testé chez moi sans succès ! En espérant que tu ai plus de chance....(j'ai rajouté les librairies libcomctl32.a et libwsock32.a)


La connaissance se doit d'être partagée...
mardi 28 juin 2005 à 18:12:16 | Re : STATIC, SetWindowText et icone[Dev-C++]

vecchio56

Administrateur CodeS-SourceS
Ca vient assurément de ces lignes: case WM_CTLCOLORSTATIC: SetBkMode((HDC)wParam, TRANSPARENT); Pourquoi tu as mis ca?

1 2

Cette discussion est classée dans : texte, icone, static, dev, setwindowtext


Répondre à ce message

Sujets en rapport avec ce message

prob setwindowtext [ par flatou ] Probleme tout con, je veux changer le texte d'un static (ou d'un editbox), pour cela j'utilise SetWindowTest(). Le prob est que le nouveau texte se su static [ par leprov ] salut a tous.bon alors voila. je fais une fenetre, et je voudrais placer quelques statiques. la j'ai plusieurs questions. la premiere étant comment fa static icone [ par alphaone ] j'aimerai envoyer dans une static un icone qui est en externe. es ce possible et comment? popupmenu + icone [ par Repie ] est ce que quelqu'un a un code sur l'ajout d'icones à une cellule d'un popup, sur msdn ils ont l'air de dire que c'est soit du texte soit une image... texte tronqué dans un static [ par SnOOpss ] Bonjour j'aurais deux petites questions de debutants. Je suis en train de sousclasser un controle de windows, il s agit d'un simple texte en static, DEV-C++/ affichage de texte en mode graphique [ par FLASH92 ] Bonjour mesdames, messieurs,Mon problème actuellement est que je ne peux pas afficher un texte quelconque en couleur et avec une police bien défini su DEV-C++/ affichage de texte en mode graphique [ par FLASH92 ] Bonjour mesdames, messieurs,Mon problème actuellement est que je ne peux pas afficher un texte quelconque en couleur et avec une police bien défini su icone + texte sur boutton [ par SnOOpss ] Bonjour tout le monde !!J arrive a mettre une icone sur un boutton ( avec le style bs_icon) mais a ce moment je n'ai plus le texte est ce qu il est po Static Text [ par jpmouton ] Bonjour à tous.Amateur de programmation en c++, je cherche désespérément à écrite le texte suivant dans un Static Text.Voici la phrase: "coordonnée La Modifier les propriétés des controles boutons (image, texte, couleur, ...) [ par skirby ] Bonjour tout le monde,J'aurais voulu savoir si il était possible de créer des boutons sur lesquels on pourrait :- afficher une icone (depuis un fichie


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 8,549 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales