Accueil > Forum > > > > Comment connaitre la largeur d'un groupbox
Comment connaitre la largeur d'un groupbox
mardi 11 janvier 2005 à 11:05:04 |
Comment connaitre la largeur d'un groupbox

loupiti
|
Bonjour, je developpe sous visual c++6 et j'aimerais savoir comment connaitre la largeur dun group box
afin de pouvoir y dessiner dedans
Merci
|
|
mardi 11 janvier 2005 à 14:26:17 |
Re : Comment connaitre la largeur d'un groupbox

ymca2003
|
HNWD hGrp = getDlgItem(hDlg, IDC_GROUPBOX); RECT rc; GetClientRect(hGrp, &rc);
IDC_GROUPBOX : Id du groupbox dans le dialog hDlg : handle du dialogue
=> rc contient la taille du groupbox
|
|
mercredi 12 janvier 2005 à 07:47:04 |
Re : Comment connaitre la largeur d'un groupbox

loupiti
|
Bonjour,
Merci pour votre reponse, je n'arrive cependant pas a recuperer le handle de ma fenetre
je fais un GetHwnd ()
=>HWND hGrp = GetDlgItem(GetHwnd(),IDC_GROUP);
sinon comme ca le compilo accepte mais rien ne s'affiche quand je fais le AfxMessageBox
HWND hGrp = (HWND)GetDlgItem(IDC_GROUP);
RECT rc;
GetClientRect(&rc);
AfxMessageBox(rc.left);
|
|
mercredi 12 janvier 2005 à 08:51:44 |
Re : Comment connaitre la largeur d'un groupbox

ymca2003
|
Si t'es sous MFC c'est : CWnd* pGrp = pDlg->GetDlgItem( IDC_GROUPBOX); Crect rc pGrp->GetClientRect(&rc);
(si t'es au sein du dialogue, pDg-> peut être omis)
|
|
mercredi 12 janvier 2005 à 18:26:38 |
Re : Comment connaitre la largeur d'un groupbox

loupiti
|
Voila ce que j'ai tapé
CMainFrame* pDoc = (CMainFrame*) GetDocument();
CPen Pen;
GetClientRect(&rect);
Pen.CreatePen(PS_SOLID, 2, RGB(255,0,0));
CPen* OldPen = pDC->SelectObject(&Pen);
CWnd* pGrp = pDoc->GetDlgItem(IDC_ARRIVEE);
CRect rc;
pGrp->GetClientRect(&rc);
CPoint pthogauche = rc.TopLeft();
CPoint ptbadroit = rc.BottomRight();
pDC->MoveTo(pthogauche.x,pthogauche.y);
pDC->LineTo(ptbadroit.x,ptbadroit.y);
Quand je ne met pas le pDoc->GetDlgItem le prog trace un trait partant du coin haut gauche de ma fenetre et non de mon group
Par contre quand je met le pDoc->GetDlgItem le prog bug
Je vois pas
|
|
mercredi 12 janvier 2005 à 18:33:19 |
Re : Comment connaitre la largeur d'un groupbox

ymca2003
|
GetClientRect va de donner la taille du GroupBox en coord cliente (left et top de CRect à 0)
Pour récupérer sa position par rapport à la fenêtre parente, faire successivement : pGrp->GetWindowRect(&rc); ScreenToClient(&rc);
CMainFrame* pDoc = (CMainFrame*) GetDocument(); -> ca c'est un cast violent, GetDocument renvoi un CDocument* (ou dérivé) qui n'a rien a voir avec CMainFrame. CMainFrame* pFrame = (CMainFrame*) AfxGetApp()->m_pMainWnd; sera mieux.
|
|
mercredi 12 janvier 2005 à 19:20:49 |
Re : Comment connaitre la largeur d'un groupbox

loupiti
|
Merci beaucoup ca marche
en fait le ScreenToClient localise la position du group dans la fenetre?
@+
;-)
|
|
jeudi 13 janvier 2005 à 08:58:45 |
Re : Comment connaitre la largeur d'un groupbox

ymca2003
|
GetWindowRect donne les coordonnées à l'écran et ScreenToClient les transpose par rapport à la zone client d'une fenêtre quelconque (en l'occurence le parent du groupbox)
|
|
vendredi 14 janvier 2005 à 13:47:16 |
Re : Comment connaitre la largeur d'un groupbox

loupiti
|
Bonjour,
j'ai de nouveau un petit probleme.
Je faisais le tracé dans la classe gérant ma vue, mais en fait je dois créer une autre classe qui doit faire le tracé.
J'ai donc fait une classe Dessin appelé dans le OnDraw de ma vue.
void CMaView::OnDraw(CDC* pDC)
{
Dessin fd;
fd.Tracer(pDC);
}
et dans la classe Dessin
void Dessin::Tracer(CDC* pDC)
{
CMainFrame* pFrame = (CMainFrame*) AfxGetApp()->m_pMainWnd;
CPen Pen;
Pen.CreatePen(PS_SOLID, 2, RGB(255,0,0));
CPen* OldPen = pDC->SelectObject(&Pen);
CWnd* pGrp = pFrame->GetDlgItem(IDC_GR);
CRect rc;
pFrame->GetWindowRect(&rc);
pFrame->ScreenToClient(&rc);
CPoint pthogauche = rc.TopLeft();
CPoint ptbadroit = rc.BottomRight();
pDC->MoveTo(pthogauche.x,pthogauche.y);
pDC->LineTo(ptbadroit.x,ptbadroit.y);
pDC->SelectObject(OldPen);
Pen.DeleteObject();
pFrame->ReleaseDC(pDC);
}
Le tracé ne se fait pas dans le group box mais fait la diagonale de mon ecran!!!
Pouvez vous me re aider?
Merci
|
|
vendredi 14 janvier 2005 à 13:48:09 |
Re : Comment connaitre la largeur d'un groupbox

loupiti
|
Pourquoi mes messages s'écrivent comme ca?
c lourd
|
|
Cette discussion est classée dans : connaitre, largeur, groupbox
Répondre à ce message
Sujets en rapport avec ce message
connaitre la largeur d'un HPEN [ par camarchepoa ]
bonjour ! voilà mon probleme : je crée un HPEN comme ca : currPen=CreatePen(PS_SOLID, 5, RGB(255, 0, 0)); maintenant je voudrai connaitre sa largeur,
Histogramme [ par stockley81 ]
Bonjourj'ai recupere toutes les valeurs des pixels d'une image stockees dans des tableaux et je souhaite realiser un histogramme de l'image. C'est dir
connaitre nombre de fichier dans un dossier [ par Gedeon31 ]
pour mon appli c++ je cherche a savoir le nombre de fichier present dans un dossier sachant que je connait son chemin, kk1 connai t il un moyen de le
Comment connaitre l'etat de l'imprimante [ par bernard01 ]
Y a t'il une autre façon de connaitre l'état de l'imprimante sans passer par les structures PRINTER_INFOx?
Un moyen pr connaitre si un char est un int ? [ par nsr974 ]
Slt all!Alrs je precise,que je debute ds la prog,notamment en C/CPPALrs en fait j'aimerais connaitre le moyen pr savoir si un char est un int. Voila
Connaitre le numéro de semaine pour une date donnée [ par diouck ]
SalutJe sais qu'en VB il est possible de connaitre le numéro de semaine d'une date donnée avec la fonction suivante :"NumWeek.Text = DatePart("ww", Da
PB poilu de Stack 0verFlow (c++) [ par toufleboss ]
Ci joint un algo de détourage d'un bmp de qq lignes :Le Binze c'est que des que la zone a détourée est trop importante je me tape un Stack overflow (l
Connaitre position de la souris à chaque déplacement [ par maxinfos ]
Bonjourje voudrais savoir comment récupérer la position de la souris à chaque instant, lors de son déplacement. (merci d'être précis, je suis débutant
Connaitre l'adresse de l executable [ par gagaet22 ]
Bonjour à tous et merci à vous de votre attention...I have a probleme: je veux ouvrir plusieurs fichiers à des adresses differentes... et j'ai besoin
Connaitre les infos relatives au theme de windows [ par ChAnG-Fu ]
J'ai besoin de savoir ou je peut trouver les infos relatives a la taille de la barre de titre de windowsBiensur je ne programme pas en C++mais j'en es
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : CXIMAGERE : CXIMAGE par rt15
Cliquez pour lire la suite par rt15
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|