IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

[ToolBar] Ajout bouton dynamique?


Sujet :

MFC

  1. #1
    Membre averti
    Inscrit en
    Février 2007
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 33
    Par défaut [ToolBar] Ajout bouton dynamique?
    Bonjour tout le monde,

    j'ai suivi le FAQ suivant pour insérer une CComboBox dans ma CToolBar.
    http://c.developpez.com/faq/vc/?page...oolBarTwoState
    mais je n'arrive pas à ajouter un bouton dynamique à coté de ma CComboBox .

    voici le code actuel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
     
    int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
    {
     
    	if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
    		return -1;
    	// create a view to occupy the client area of the frame
    	if (!m_wndView.Create(NULL, NULL, AFX_WS_DEFAULT_VIEW,
    		CRect(0, 0, 0, 0), this, AFX_IDW_PANE_FIRST, NULL))
    	{
    		TRACE0("Failed to create view window\n");
    		return -1;
    	}
     
     
    	if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | CBRS_TOP | WS_VISIBLE
    		| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
    		!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
    	{
    		TRACE0("Failed to create toolbar\n");
    		return -1;      // fail to create
    	}
     
    	/* ========== Creation de la comboBox pour l'affichage la liste des driver 1553 ========== */
    	TBBUTTON button;
     
    	button.iBitmap=NULL;
    	button.idCommand=0;
    	button.fsStyle=TBSTYLE_SEP;
    	button.dwData=0;
    	button.iString=NULL;
    	m_wndToolBar.GetToolBarCtrl().InsertButton(0,&button);
    	m_wndToolBar.GetToolBarCtrl().InsertButton(0,&button);
    	m_wndToolBar.SetButtonInfo(0,1,TBBS_SEPARATOR,100);
     
    	CRect rect;
    	m_wndToolBar.GetItemRect(0,&rect);
    	rect.top=0;
    	rect.bottom=rect.top+100;
    	rect.right+=100;
     
    	if(!m_ComboBox.Create(CBS_DROPDOWNLIST | WS_VISIBLE | WS_TABSTOP,rect,&m_wndToolBar,1))
    	{
    		TRACE0("Failed to create combobox\n");
    		return FALSE;      // fail to create
    	}
     
    /***************************/
    /*CODE POUR AJOUTER LE BOUTON*/
    /***************************/
     
     
     
    	if (!m_wndStatusBar.Create(this) ||
    		!m_wndStatusBar.SetIndicators(indicators,
    		sizeof(indicators)/sizeof(UINT)))
    	{
    		TRACE0("Failed to create status bar\n");
    		return -1;      // fail to create
    	}
     
    	// TODO: Delete these three lines if you don't want the toolbar to
    	//  be dockable
    	m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
    	EnableDocking(CBRS_ALIGN_ANY);
    	DockControlBar(&m_wndToolBar);
     
    	/* ====== Initialiser la liste des driver dans le ComboBox ====== */
    	int i;
    	for(i=0;i<m_wndView.m_azListCsDriver.GetCount();i++)
    	{
     
    		m_ComboBox.AddString(m_wndView.m_azListCsDriver.GetAt(i));
     
    	}
    	m_ComboBox.SetCurSel(0);
    	m_nTimerId = SetTimer(1111 /* id */, 1000 /* ms */, NULL);
     
    	/*===== Mode pleine ecran =====*/
    	this->ShowWindow(SW_MAXIMIZE);
    	return 0;
    }
    qu'est ce que je dois ajouter comme code pour avec un bouton visible à coté de ma ComboBox??
    PS : un bouton avec un text "GO"

    merci d'avance

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    pour l'insertion dynamique d'un bouton voir ce post de la faq:
    http://c.developpez.com/faq/vc/?page...rDynamicRedraw

  3. #3
    Membre averti
    Inscrit en
    Février 2007
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 33
    Par défaut
    oui j'avais vu ce faq, mais je pensais qu'il y a plus simple.
    200 lignes du code pour ajouter un bouton ??

    j'ai essayé ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    	TBBUTTON button2 = {0};
    	button2.fsState = TBSTATE_ENABLED;
    	button2.fsStyle = TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE;
    	button2.iBitmap=IDB_IL_TREECTRL;
    	button2.idCommand=0;
    	button2.dwData=0;
    	button2.iString=NULL;
    	m_wndToolBar.GetToolBarCtrl().AddButtons(5,&button2);
    	CSize m_SizeButton;
    	m_SizeButton.cx=16;
    	m_SizeButton.cy=15;
    mais il m'affiche pas le bitmap

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    Cette classe prend en charge le redimensionnement de la toolbar après ajout dynamique du bouton.
    que la barre soit flottante ou non.., la classe de base ne le permet pas.
    à toi de voir ...

  5. #5
    Membre averti
    Inscrit en
    Février 2007
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 33
    Par défaut
    oki merci pour l'aide ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD15] Ajout Bouton en dynamique par programmation
    Par pardet dans le forum WinDev
    Réponses: 3
    Dernier message: 17/11/2010, 09h35
  2. problème ajout bouton dans toolbar
    Par ArnSpin dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 24/08/2010, 14h27
  3. vba ajout de bouton dynamique dans userform + action sur bouton ajouté
    Par choupette_64 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 29/07/2009, 15h04
  4. Réponses: 2
    Dernier message: 24/01/2008, 10h44
  5. Ajouter objet dynamiquement via un bouton
    Par maxjaco dans le forum SWT/JFace
    Réponses: 3
    Dernier message: 23/06/2006, 16h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo