Accueil > Forum > > > > Deplacer une form
Deplacer une form
dimanche 25 mai 2003 à 16:23:15 |
Deplacer une form

bdkiller
|
Salut all, je suis newbie dans le cpp et j'ai l'habitude de fouiller dans les forums et dans les sources afin d'apprendre en douceur la fameuse prog cpp :) en bref voilà mon blème: J'ai une form crée sans les bords avec une image (genre Winamp) donc pas de barre de titre, donc le deplacement doit se faire à l'aide de l'image (bitmap) utilisé, et mon bleme est là, je sais pas comment?! J'ai essayé de faire sur l'image OnMouseDown les trucs genre SetWindowPos - passe pas, avec MoveWindow, passe pas nan plus :( enfin peut etre ca passerait mais le bleme ce que je sais pas le faire exactement.. quelqu'un de sympa peut m'aider svp?! Merci d'avance. ::.:[bdk]:.::
|
|
dimanche 25 mai 2003 à 16:41:29 |
Re : Deplacer une form

BruNews
|
doit te manquer la capture souris. Regarde SetCapture() dans le MSDN. Ne pas oublier ReleaseCapture(), son pendant, qui doit etre surveille et appele dans differents contextes. Pendant la capture, SetWindowPos() fera tout a fait le travail, je te conseille cette solution car mieux parametrable que MoveWindow(). BruNews, ciao...
------------------------------- Réponse au message : -------------------------------
> Salut all, je suis newbie dans le cpp et j'ai l'habitude de fouiller dans les forums et dans les sources afin d'apprendre en douceur la fameuse prog cpp :) en bref voilà mon blème: > > J'ai une form crée sans les bords avec une image (genre Winamp) donc pas de barre de titre, donc le deplacement doit se faire à l'aide de l'image (bitmap) utilisé, et mon bleme est là, je sais pas comment?! J'ai essayé de faire sur l'image OnMouseDown les trucs genre SetWindowPos - passe pas, avec MoveWindow, passe pas nan plus :( enfin peut etre ca passerait mais le bleme ce que je sais pas le faire exactement.. quelqu'un de sympa peut m'aider svp?! > > Merci d'avance. > ::.:[bdk]:.::
|
|
dimanche 25 mai 2003 à 18:32:55 |
Re : Deplacer une form

bdkiller
|
heuh, comme je le disais je suis newbie :D regarde ce que j'ai mis dans OnMouseDown: POINT pt; GetCursorPos(&pt); //je prends les coordonnés x et y de la souris SetCapture(Form1); //je pose la capture sure la Form1 SetWindowPos(Form1, Form1, pt.x, pt.y, 200, 320, SWP_NOSIZE); //pt.x et pt.y sont les coordonnées de souris
|
voilà, mais ca marche pas tout de meme, je ne sais pas ou est le probleme en effet.. si tu pourrais m'écrire un ptit exemple stp  a plus ::.:[bdk]:.:: ------------------------------- Réponse au message : ------------------------------- > doit te manquer la capture souris. > Regarde SetCapture() dans le MSDN. > Ne pas oublier ReleaseCapture(), son pendant, qui doit etre surveille et appele dans differents contextes. > Pendant la capture, SetWindowPos() fera tout a fait le travail, je te conseille cette solution car mieux parametrable que MoveWindow(). > BruNews, ciao... > > > ------------------------------- > Réponse au message : > ------------------------------- > > > Salut all, je suis newbie dans le cpp et j'ai l'habitude de fouiller dans les forums et dans les sources afin d'apprendre en douceur la fameuse prog cpp :) en bref voilà mon blème: > > > > J'ai une form crée sans les bords avec une image (genre Winamp) donc pas de barre de titre, donc le deplacement doit se faire à l'aide de l'image (bitmap) utilisé, et mon bleme est là, je sais pas comment?! J'ai essayé de faire sur l'image OnMouseDown les trucs genre SetWindowPos - passe pas, avec MoveWindow, passe pas nan plus :( enfin peut etre ca passerait mais le bleme ce que je sais pas le faire exactement.. quelqu'un de sympa peut m'aider svp?! > > > > Merci d'avance. > > ::.:[bdk]:.:: >
|
|
dimanche 25 mai 2003 à 18:48:39 |
Re : Deplacer une form

BruNews
|
Bon, voila petit extrait d'un prog genre Post-it. Pas de MFC, jamais avec moi, si toi oui faudra interpreter. Cet extrait de wndproc te montre deplacement d'une fiche qui n'a pas de barre de titre et fonctionne quel que soit endroit ou on l'attrape. Note bien qu'il faut convertir les coordonnees. case WM_LBUTTONDOWN: mouseX = LOWORD(lParam); mouseY = HIWORD(lParam); SetCapture(hDlg); bCapture = 1; return 0; case WM_LBUTTONUP: if(GetCapture() == hDlg) { ReleaseCapture(); bCapture = 0; GetCursorPos(&pt); SetWindowPos(hDlg, 0, pt.x - mouseX, pt.y - mouseY, 0, 0, SWP_NOZORDER | SWP_NOSIZE); } return 0; case WM_RBUTTONUP: if(bCapture) return 0; pt.x = LOWORD(lParam); pt.y = HIWORD(lParam); ClientToScreen(hDlg, &pt); TrackPopupMenu(GetSubMenu(hMenu, 0), TPM_RIGHTBUTTON, pt.x, pt.y, 0, hDlg, NULL); return 0; case WM_MOUSEMOVE: if(bCapture) { pt.x = LOWORD(lParam); pt.y = HIWORD(lParam); ClientToScreen(hDlg, &pt); SetWindowPos(hDlg, 0, pt.x - mouseX, pt.y - mouseY, 0, 0, SWP_NOZORDER | SWP_NOSIZE); } return 0; BruNews, ciao... ------------------------------- Réponse au message : ------------------------------- > heuh, comme je le disais je suis newbie :D > regarde ce que j'ai mis dans OnMouseDown: > > > POINT pt; > GetCursorPos(&pt); //je prends les coordonnés x et y de la souris > SetCapture(Form1); //je pose la capture sure la Form1 > SetWindowPos(Form1, Form1, pt.x, pt.y, 200, 320, SWP_NOSIZE); //pt.x et pt.y sont les coordonnées de souris > |
> > voilà, mais ca marche pas tout de meme, je ne sais pas ou est le probleme en effet.. > > si tu pourrais m'écrire un ptit exemple stp  > a plus > ::.:[bdk]:.:: > > > ------------------------------- > Réponse au message : > ------------------------------- > > > doit te manquer la capture souris. > > Regarde SetCapture() dans le MSDN. > > Ne pas oublier ReleaseCapture(), son pendant, qui doit etre surveille et appele dans differents contextes. > > Pendant la capture, SetWindowPos() fera tout a fait le travail, je te conseille cette solution car mieux parametrable que MoveWindow(). > > BruNews, ciao... > > > > > > ------------------------------- > > Réponse au message : > > ------------------------------- > > > > > Salut all, je suis newbie dans le cpp et j'ai l'habitude de fouiller dans les forums et dans les sources afin d'apprendre en douceur la fameuse prog cpp :) en bref voilà mon blème: > > > > > > J'ai une form crée sans les bords avec une image (genre Winamp) donc pas de barre de titre, donc le deplacement doit se faire à l'aide de l'image (bitmap) utilisé, et mon bleme est là, je sais pas comment?! J'ai essayé de faire sur l'image OnMouseDown les trucs genre SetWindowPos - passe pas, avec MoveWindow, passe pas nan plus :( enfin peut etre ca passerait mais le bleme ce que je sais pas le faire exactement.. quelqu'un de sympa peut m'aider svp?! > > > > > > Merci d'avance. > > > ::.:[bdk]:.:: > > >
|
|
dimanche 25 mai 2003 à 20:22:36 |
Re : Deplacer une form

bdkiller
|
lol merci beacoup mais lol.. j'ai pas pigé grand chose dans ton src  dis moi pourquoi c'est si long? il n'y a pas de trucs plus rapides du genre: void CNCHitDlg::OnLButtonDown(UINT nFlags, CPoint point) { CDialog::OnLButtonDown(nFlags, point); // fake windows into thinking your clicking on the caption, does not // maximize on double click PostMessage( WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM( point.x, point.y)); }
|
j'ai trouvé ca sur codeguru je crois.. mais.. zut j'ai bcb et ca ne veut pas marcher nan plus.. et pis dis moi, c'est quoi un MFC  , j'ai l'air d'un con je sais, mais bon.. je ne pige pas grand chose ;) moi j'ai choisi nouveau>application dans bcb et donc je peux pas te dire si c'est un MFC ou j'sais pas quoi lol app ::.:[bdk]:.:: ------------------------------- Réponse au message : ------------------------------- > Bon, voila petit extrait d'un prog genre Post-it. > Pas de MFC, jamais avec moi, si toi oui faudra interpreter. > Cet extrait de wndproc te montre deplacement d'une fiche qui n'a pas de barre de titre et fonctionne quel que soit endroit ou on l'attrape. > Note bien qu'il faut convertir les coordonnees. > > case WM_LBUTTONDOWN: > mouseX = LOWORD(lParam); mouseY = HIWORD(lParam); > SetCapture(hDlg); bCapture = 1; > return 0; > case WM_LBUTTONUP: > if(GetCapture() == hDlg) { > ReleaseCapture(); bCapture = 0; > GetCursorPos(&pt); > SetWindowPos(hDlg, 0, pt.x - mouseX, pt.y - mouseY, 0, 0, SWP_NOZORDER | SWP_NOSIZE); > } > return 0; > case WM_RBUTTONUP: > if(bCapture) return 0; > pt.x = LOWORD(lParam); pt.y = HIWORD(lParam); > ClientToScreen(hDlg, &pt); > TrackPopupMenu(GetSubMenu(hMenu, 0), TPM_RIGHTBUTTON, pt.x, pt.y, 0, hDlg, NULL); > return 0; > case WM_MOUSEMOVE: > if(bCapture) { > pt.x = LOWORD(lParam); pt.y = HIWORD(lParam); > ClientToScreen(hDlg, &pt); > SetWindowPos(hDlg, 0, pt.x - mouseX, pt.y - mouseY, 0, 0, SWP_NOZORDER | SWP_NOSIZE); > } > return 0; > BruNews, ciao... > > > ------------------------------- > Réponse au message : > ------------------------------- > > > heuh, comme je le disais je suis newbie :D > > regarde ce que j'ai mis dans OnMouseDown: > > > > > > POINT pt; > > GetCursorPos(&pt); //je prends les coordonnés x et y de la souris > > SetCapture(Form1); //je pose la capture sure la Form1 > > SetWindowPos(Form1, Form1, pt.x, pt.y, 200, 320, SWP_NOSIZE); //pt.x et pt.y sont les coordonnées de souris > > |
> > > > voilà, mais ca marche pas tout de meme, je ne sais pas ou est le probleme en effet.. > > > > si tu pourrais m'écrire un ptit exemple stp  > > a plus > > ::.:[bdk]:.:: > > > > > > ------------------------------- > > Réponse au message : > > ------------------------------- > > > > > doit te manquer la capture souris. > > > Regarde SetCapture() dans le MSDN. > > > Ne pas oublier ReleaseCapture(), son pendant, qui doit etre surveille et appele dans differents contextes. > > > Pendant la capture, SetWindowPos() fera tout a fait le travail, je te conseille cette solution car mieux parametrable que MoveWindow(). > > > BruNews, ciao... > > > > > > > > > ------------------------------- > > > Réponse au message : > > > ------------------------------- > > > > > > > Salut all, je suis newbie dans le cpp et j'ai l'habitude de fouiller dans les forums et dans les sources afin d'apprendre en douceur la fameuse prog cpp :) en bref voilà mon blème: > > > > > > > > J'ai une form crée sans les bords avec une image (genre Winamp) donc pas de barre de titre, donc le deplacement doit se faire à l'aide de l'image (bitmap) utilisé, et mon bleme est là, je sais pas comment?! J'ai essayé de faire sur l'image OnMouseDown les trucs genre SetWindowPos - passe pas, avec MoveWindow, passe pas nan plus :( enfin peut etre ca passerait mais le bleme ce que je sais pas le faire exactement.. quelqu'un de sympa peut m'aider svp?! > > > > > > > > Merci d'avance. > > > > ::.:[bdk]:.:: > > > > > >
|
|
dimanche 25 mai 2003 à 20:41:14 |
Re : Deplacer une form

BruNews
|
bcb ??? connais pas, tu vois, 1 partout. Je bosse le C sur Visual Studio et me va impec, tu devrais essayer. En ce qui concerne win32 et code court, faut pas y compter. Ce que je t'ai passe marche nickel, c'est du win32 direct par API. Ce que tu as pris sur codeguru est du MFC. Faut que tu trouves de la doc, trop long pour moi d'expliquer les differences. BruNews, ciao... ------------------------------- Réponse au message : ------------------------------- > lol merci beacoup mais lol.. j'ai pas pigé grand chose dans ton src  > > dis moi pourquoi c'est si long? il n'y a pas de trucs plus rapides du genre: > > void CNCHitDlg::OnLButtonDown(UINT nFlags, CPoint point) > { > CDialog::OnLButtonDown(nFlags, point); > // fake windows into thinking your clicking on the caption, does not > // maximize on double click > PostMessage( WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM( point.x, point.y)); > } > |
> j'ai trouvé ca sur codeguru je crois.. mais.. zut j'ai bcb et ca ne veut pas marcher nan plus.. et pis dis moi, c'est quoi un MFC  , j'ai l'air d'un con je sais, mais bon.. je ne pige pas grand chose ;) moi j'ai choisi nouveau>application dans bcb et donc je peux pas te dire si c'est un MFC ou j'sais pas quoi lol > app > ::.:[bdk]:.:: > > > ------------------------------- > Réponse au message : > ------------------------------- > > > Bon, voila petit extrait d'un prog genre Post-it. > > Pas de MFC, jamais avec moi, si toi oui faudra interpreter. > > Cet extrait de wndproc te montre deplacement d'une fiche qui n'a pas de barre de titre et fonctionne quel que soit endroit ou on l'attrape. > > Note bien qu'il faut convertir les coordonnees. > > > > case WM_LBUTTONDOWN: > > mouseX = LOWORD(lParam); mouseY = HIWORD(lParam); > > SetCapture(hDlg); bCapture = 1; > > return 0; > > case WM_LBUTTONUP: > > if(GetCapture() == hDlg) { > > ReleaseCapture(); bCapture = 0; > > GetCursorPos(&pt); > > SetWindowPos(hDlg, 0, pt.x - mouseX, pt.y - mouseY, 0, 0, SWP_NOZORDER | SWP_NOSIZE); > > } > > return 0; > > case WM_RBUTTONUP: > > if(bCapture) return 0; > > pt.x = LOWORD(lParam); pt.y = HIWORD(lParam); > > ClientToScreen(hDlg, &pt); > > TrackPopupMenu(GetSubMenu(hMenu, 0), TPM_RIGHTBUTTON, pt.x, pt.y, 0, hDlg, NULL); > > return 0; > > case WM_MOUSEMOVE: > > if(bCapture) { > > pt.x = LOWORD(lParam); pt.y = HIWORD(lParam); > > ClientToScreen(hDlg, &pt); > > SetWindowPos(hDlg, 0, pt.x - mouseX, pt.y - mouseY, 0, 0, SWP_NOZORDER | SWP_NOSIZE); > > } > > return 0; > > BruNews, ciao... > > > > > > ------------------------------- > > Réponse au message : > > ------------------------------- > > > > > heuh, comme je le disais je suis newbie :D > > > regarde ce que j'ai mis dans OnMouseDown: > > > > > > > > > POINT pt; > > > GetCursorPos(&pt); //je prends les coordonnés x et y de la souris > > > SetCapture(Form1); //je pose la capture sure la Form1 > > > SetWindowPos(Form1, Form1, pt.x, pt.y, 200, 320, SWP_NOSIZE); //pt.x et pt.y sont les coordonnées de souris > > > |
> > > > > > voilà, mais ca marche pas tout de meme, je ne sais pas ou est le probleme en effet.. > > > > > > si tu pourrais m'écrire un ptit exemple stp  > > > a plus > > > ::.:[bdk]:.:: > > > > > > > > > ------------------------------- > > > Réponse au message : > > > ------------------------------- > > > > > > > doit te manquer la capture souris. > > > > Regarde SetCapture() dans le MSDN. > > > > Ne pas oublier ReleaseCapture(), son pendant, qui doit etre surveille et appele dans differents contextes. > > > > Pendant la capture, SetWindowPos() fera tout a fait le travail, je te conseille cette solution car mieux parametrable que MoveWindow(). > > > > BruNews, ciao... > > > > > > > > > > > > ------------------------------- > > > > Réponse au message : > > > > ------------------------------- > > > > > > > > > Salut all, je suis newbie dans le cpp et j'ai l'habitude de fouiller dans les forums et dans les sources afin d'apprendre en douceur la fameuse prog cpp :) en bref voilà mon blème: > > > > > > > > > > J'ai une form crée sans les bords avec une image (genre Winamp) donc pas de barre de titre, donc le deplacement doit se faire à l'aide de l'image (bitmap) utilisé, et mon bleme est là, je sais pas comment?! J'ai essayé de faire sur l'image OnMouseDown les trucs genre SetWindowPos - passe pas, avec MoveWindow, passe pas nan plus :( enfin peut etre ca passerait mais le bleme ce que je sais pas le faire exactement.. quelqu'un de sympa peut m'aider svp?! > > > > > > > > > > Merci d'avance. > > > > > ::.:[bdk]:.:: > > > > > > > > > >
|
|
dimanche 25 mai 2003 à 23:55:59 |
Re : Deplacer une form

bdkiller
|
bcb = Borland C++ Builder bah MFC apparement est mieux lol vu que c'est plus court :D mais bon, merci quand meme que tu a essayé de m'aider, c'est gentil de ta part. a++ ::.:[bdk]:.:: ------------------------------- Réponse au message : ------------------------------- > bcb ??? connais pas, tu vois, 1 partout. Je bosse le C sur Visual Studio et me va impec, tu devrais essayer. > En ce qui concerne win32 et code court, faut pas y compter. > Ce que je t'ai passe marche nickel, c'est du win32 direct par API. Ce que tu as pris sur codeguru est du MFC. Faut que tu trouves de la doc, trop long pour moi d'expliquer les differences. > BruNews, ciao... > > > ------------------------------- > Réponse au message : > ------------------------------- > > > lol merci beacoup mais lol.. j'ai pas pigé grand chose dans ton src  > > > > dis moi pourquoi c'est si long? il n'y a pas de trucs plus rapides du genre: > > > > void CNCHitDlg::OnLButtonDown(UINT nFlags, CPoint point) > > { > > CDialog::OnLButtonDown(nFlags, point); > > // fake windows into thinking your clicking on the caption, does not > > // maximize on double click > > PostMessage( WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM( point.x, point.y)); > > } > > |
> > j'ai trouvé ca sur codeguru je crois.. mais.. zut j'ai bcb et ca ne veut pas marcher nan plus.. et pis dis moi, c'est quoi un MFC  , j'ai l'air d'un con je sais, mais bon.. je ne pige pas grand chose ;) moi j'ai choisi nouveau>application dans bcb et donc je peux pas te dire si c'est un MFC ou j'sais pas quoi lol > > app > > ::.:[bdk]:.:: > > > > > > ------------------------------- > > Réponse au message : > > ------------------------------- > > > > > Bon, voila petit extrait d'un prog genre Post-it. > > > Pas de MFC, jamais avec moi, si toi oui faudra interpreter. > > > Cet extrait de wndproc te montre deplacement d'une fiche qui n'a pas de barre de titre et fonctionne quel que soit endroit ou on l'attrape. > > > Note bien qu'il faut convertir les coordonnees. > > > > > > case WM_LBUTTONDOWN: > > > mouseX = LOWORD(lParam); mouseY = HIWORD(lParam); > > > SetCapture(hDlg); bCapture = 1; > > > return 0; > > > case WM_LBUTTONUP: > > > if(GetCapture() == hDlg) { > > > ReleaseCapture(); bCapture = 0; > > > GetCursorPos(&pt); > > > SetWindowPos(hDlg, 0, pt.x - mouseX, pt.y - mouseY, 0, 0, SWP_NOZORDER | SWP_NOSIZE); > > > } > > > return 0; > > > case WM_RBUTTONUP: > > > if(bCapture) return 0; > > > pt.x = LOWORD(lParam); pt.y = HIWORD(lParam); > > > ClientToScreen(hDlg, &pt); > > > TrackPopupMenu(GetSubMenu(hMenu, 0), TPM_RIGHTBUTTON, pt.x, pt.y, 0, hDlg, NULL); > > > return 0; > > > case WM_MOUSEMOVE: > > > if(bCapture) { > > > pt.x = LOWORD(lParam); pt.y = HIWORD(lParam); > > > ClientToScreen(hDlg, &pt); > > > SetWindowPos(hDlg, 0, pt.x - mouseX, pt.y - mouseY, 0, 0, SWP_NOZORDER | SWP_NOSIZE); > > > } > > > return 0; > > > BruNews, ciao... > > > > > > > > > ------------------------------- > > > Réponse au message : > > > ------------------------------- > > > > > > > heuh, comme je le disais je suis newbie :D > > > > regarde ce que j'ai mis dans OnMouseDown: > > > > > > > > > > > > POINT pt; > > > > GetCursorPos(&pt); //je prends les coordonnés x et y de la souris > > > > SetCapture(Form1); //je pose la capture sure la Form1 > > > > SetWindowPos(Form1, Form1, pt.x, pt.y, 200, 320, SWP_NOSIZE); //pt.x et pt.y sont les coordonnées de souris > > > > |
> > > > > > > > voilà, mais ca marche pas tout de meme, je ne sais pas ou est le probleme en effet.. > > > > > > > > si tu pourrais m'écrire un ptit exemple stp  > > > > a plus > > > > ::.:[bdk]:.:: > > > > > > > > > > > > ------------------------------- > > > > Réponse au message : > > > > ------------------------------- > > > > > > > > > doit te manquer la capture souris. > > > > > Regarde SetCapture() dans le MSDN. > > > > > Ne pas oublier ReleaseCapture(), son pendant, qui doit etre surveille et appele dans differents contextes. > > > > > Pendant la capture, SetWindowPos() fera tout a fait le travail, je te conseille cette solution car mieux parametrable que MoveWindow(). > > > > > BruNews, ciao... > > > > > > > > > > > > > > > ------------------------------- > > > > > Réponse au message : > > > > > ------------------------------- > > > > > > > > > > > Salut all, je suis newbie dans le cpp et j'ai l'habitude de fouiller dans les forums et dans les sources afin d'apprendre en douceur la fameuse prog cpp :) en bref voilà mon blème: > > > > > > > > > > > > J'ai une form crée sans les bords avec une image (genre Winamp) donc pas de barre de titre, donc le deplacement doit se faire à l'aide de l'image (bitmap) utilisé, et mon bleme est là, je sais pas comment?! J'ai essayé de faire sur l'image OnMouseDown les trucs genre SetWindowPos - passe pas, avec MoveWindow, passe pas nan plus :( enfin peut etre ca passerait mais le bleme ce que je sais pas le faire exactement.. quelqu'un de sympa peut m'aider svp?! > > > > > > > > > > > > Merci d'avance. > > > > > > ::.:[bdk]:.:: > > > > > > > > > > > > > > >
|
|
lundi 26 mai 2003 à 00:08:53 |
Re : Deplacer une form

BruNews
|
Regarde que VB est encore + court mais c'est pas forcement mieux, c'est different. BruNews, ciao... ------------------------------- Réponse au message : ------------------------------- > bcb = Borland C++ Builder > bah MFC apparement est mieux lol vu que c'est plus court :D > mais bon, merci quand meme que tu a essayé de m'aider, c'est gentil de ta part. > a++ > ::.:[bdk]:.:: > > > ------------------------------- > Réponse au message : > ------------------------------- > > > bcb ??? connais pas, tu vois, 1 partout. Je bosse le C sur Visual Studio et me va impec, tu devrais essayer. > > En ce qui concerne win32 et code court, faut pas y compter. > > Ce que je t'ai passe marche nickel, c'est du win32 direct par API. Ce que tu as pris sur codeguru est du MFC. Faut que tu trouves de la doc, trop long pour moi d'expliquer les differences. > > BruNews, ciao... > > > > > > ------------------------------- > > Réponse au message : > > ------------------------------- > > > > > lol merci beacoup mais lol.. j'ai pas pigé grand chose dans ton src  > > > > > > dis moi pourquoi c'est si long? il n'y a pas de trucs plus rapides du genre: > > > > > > void CNCHitDlg::OnLButtonDown(UINT nFlags, CPoint point) > > > { > > > CDialog::OnLButtonDown(nFlags, point); > > > // fake windows into thinking your clicking on the caption, does not > > > // maximize on double click > > > PostMessage( WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM( point.x, point.y)); > > > } > > > |
> > > j'ai trouvé ca sur codeguru je crois.. mais.. zut j'ai bcb et ca ne veut pas marcher nan plus.. et pis dis moi, c'est quoi un MFC  , j'ai l'air d'un con je sais, mais bon.. je ne pige pas grand chose ;) moi j'ai choisi nouveau>application dans bcb et donc je peux pas te dire si c'est un MFC ou j'sais pas quoi lol > > > app > > > ::.:[bdk]:.:: > > > > > > > > > ------------------------------- > > > Réponse au message : > > > ------------------------------- > > > > > > > Bon, voila petit extrait d'un prog genre Post-it. > > > > Pas de MFC, jamais avec moi, si toi oui faudra interpreter. > > > > Cet extrait de wndproc te montre deplacement d'une fiche qui n'a pas de barre de titre et fonctionne quel que soit endroit ou on l'attrape. > > > > Note bien qu'il faut convertir les coordonnees. > > > > > > > > case WM_LBUTTONDOWN: > > > > mouseX = LOWORD(lParam); mouseY = HIWORD(lParam); > > > > SetCapture(hDlg); bCapture = 1; > > > > return 0; > > > > case WM_LBUTTONUP: > > > > if(GetCapture() == hDlg) { > > > > ReleaseCapture(); bCapture = 0; > > > > GetCursorPos(&pt); > > > > SetWindowPos(hDlg, 0, pt.x - mouseX, pt.y - mouseY, 0, 0, SWP_NOZORDER | SWP_NOSIZE); > > > > } > > > > return 0; > > > > case WM_RBUTTONUP: > > > > if(bCapture) return 0; > > > > pt.x = LOWORD(lParam); pt.y = HIWORD(lParam); > > > > ClientToScreen(hDlg, &pt); > > > > TrackPopupMenu(GetSubMenu(hMenu, 0), TPM_RIGHTBUTTON, pt.x, pt.y, 0, hDlg, NULL); > > > > return 0; > > > > case WM_MOUSEMOVE: > > > > if(bCapture) { > > > > pt.x = LOWORD(lParam); pt.y = HIWORD(lParam); > > > > ClientToScreen(hDlg, &pt); > > > > SetWindowPos(hDlg, 0, pt.x - mouseX, pt.y - mouseY, 0, 0, SWP_NOZORDER | SWP_NOSIZE); > > > > } > > > > return 0; > > > > BruNews, ciao... > > > > > > > > > > > > ------------------------------- > > > > Réponse au message : > > > > ------------------------------- > > > > > > > > > heuh, comme je le disais je suis newbie :D > > > > > regarde ce que j'ai mis dans OnMouseDown: > > > > > > > > > > > > > > > POINT pt; > > > > > GetCursorPos(&pt); //je prends les coordonnés x et y de la souris > > > > > SetCapture(Form1); //je pose la capture sure la Form1 > > > > > SetWindowPos(Form1, Form1, pt.x, pt.y, 200, 320, SWP_NOSIZE); //pt.x et pt.y sont les coordonnées de souris > > > > > |
> > > > > > > > > > voilà, mais ca marche pas tout de meme, je ne sais pas ou est le probleme en effet.. > > > > > > > > > > si tu pourrais m'écrire un ptit exemple stp  > > > > > a plus > > > > > ::.:[bdk]:.:: > > > > > > > > > > > > > > > ------------------------------- > > > > > Réponse au message : > > > > > ------------------------------- > > > > > > > > > > > doit te manquer la capture souris. > > > > > > Regarde SetCapture() dans le MSDN. > > > > > > Ne pas oublier ReleaseCapture(), son pendant, qui doit etre surveille et appele dans differents contextes. > > > > > > Pendant la capture, SetWindowPos() fera tout a fait le travail, je te conseille cette solution car mieux parametrable que MoveWindow(). > > > > > > BruNews, ciao... > > > > > > > > > > > > > > > > > > ------------------------------- > > > > > > Réponse au message : > > > > > > ------------------------------- > > > > > > > > > > > > > Salut all, je suis newbie dans le cpp et j'ai l'habitude de fouiller dans les forums et dans les sources afin d'apprendre en douceur la fameuse prog cpp :) en bref voilà mon blème: > > > > > > > > > > > > > > J'ai une form crée sans les bords avec une image (genre Winamp) donc pas de barre de titre, donc le deplacement doit se faire à l'aide de l'image (bitmap) utilisé, et mon bleme est là, je sais pas comment?! J'ai essayé de faire sur l'image OnMouseDown les trucs genre SetWindowPos - passe pas, avec MoveWindow, passe pas nan plus :( enfin peut etre ca passerait mais le bleme ce que je sais pas le faire exactement.. quelqu'un de sympa peut m'aider svp?! > > > > > > > > > > > > > > Merci d'avance. > > > > > > > ::.:[bdk]:.:: > > > > > > > > > > > > > > > > > > > > >
|
|
lundi 26 mai 2003 à 00:16:07 |
Re : Deplacer une form

bdkiller
|
lol c'est bon, en effet ReleaseCapture(); Form1->Perform(WM_SYSCOMMAND, 0xF012, 0);
|
ca marche à tous les coups ;) ce qui bloquait c'était la property de la form ALIGN elle était sur alCustom alors que je l'ai mis en alNone ca marche :) je sais pas à quoi exactement sert ce align mais bon, l'essentiel que ca marche :D a+ ::.:[bdk]:.:: ------------------------------- Réponse au message : ------------------------------- > Regarde que VB est encore + court mais c'est pas forcement mieux, c'est different. > BruNews, ciao... > > > ------------------------------- > Réponse au message : > ------------------------------- > > > bcb = Borland C++ Builder > > bah MFC apparement est mieux lol vu que c'est plus court :D > > mais bon, merci quand meme que tu a essayé de m'aider, c'est gentil de ta part. > > a++ > > ::.:[bdk]:.:: > > > > > > ------------------------------- > > Réponse au message : > > ------------------------------- > > > > > bcb ??? connais pas, tu vois, 1 partout. Je bosse le C sur Visual Studio et me va impec, tu devrais essayer. > > > En ce qui concerne win32 et code court, faut pas y compter. > > > Ce que je t'ai passe marche nickel, c'est du win32 direct par API. Ce que tu as pris sur codeguru est du MFC. Faut que tu trouves de la doc, trop long pour moi d'expliquer les differences. > > > BruNews, ciao... > > > > > > > > > ------------------------------- > > > Réponse au message : > > > ------------------------------- > > > > > > > lol merci beacoup mais lol.. j'ai pas pigé grand chose dans ton src  > > > > > > > > dis moi pourquoi c'est si long? il n'y a pas de trucs plus rapides du genre: > > > > > > > > void CNCHitDlg::OnLButtonDown(UINT nFlags, CPoint point) > > > > { > > > > CDialog::OnLButtonDown(nFlags, point); > > > > // fake windows into thinking your clicking on the caption, does not > > > > // maximize on double click > > > > PostMessage( WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM( point.x, point.y)); > > > > } > > > > |
> > > > j'ai trouvé ca sur codeguru je crois.. mais.. zut j'ai bcb et ca ne veut pas marcher nan plus.. et pis dis moi, c'est quoi un MFC  , j'ai l'air d'un con je sais, mais bon.. je ne pige pas grand chose ;) moi j'ai choisi nouveau>application dans bcb et donc je peux pas te dire si c'est un MFC ou j'sais pas quoi lol > > > > app > > > > ::.:[bdk]:.:: > > > > > > > > > > > > ------------------------------- > > > > Réponse au message : > > > > ------------------------------- > > > > > > > > > Bon, voila petit extrait d'un prog genre Post-it. > > > > > Pas de MFC, jamais avec moi, si toi oui faudra interpreter. > > > > > Cet extrait de wndproc te montre deplacement d'une fiche qui n'a pas de barre de titre et fonctionne quel que soit endroit ou on l'attrape. > > > > > Note bien qu'il faut convertir les coordonnees. > > > > > > > > > > case WM_LBUTTONDOWN: > > > > > mouseX = LOWORD(lParam); mouseY = HIWORD(lParam); > > > > > SetCapture(hDlg); bCapture = 1; > > > > > return 0; > > > > > case WM_LBUTTONUP: > > > > > if(GetCapture() == hDlg) { > > > > > ReleaseCapture(); bCapture = 0; > > > > > GetCursorPos(&pt); > > > > > SetWindowPos(hDlg, 0, pt.x - mouseX, pt.y - mouseY, 0, 0, SWP_NOZORDER | SWP_NOSIZE); > > > > > } > > > > > return 0; > > > > > case WM_RBUTTONUP: > > > > > if(bCapture) return 0; > > > > > pt.x = LOWORD(lParam); pt.y = HIWORD(lParam); > > > > > ClientToScreen(hDlg, &pt); > > > > > TrackPopupMenu(GetSubMenu(hMenu, 0), TPM_RIGHTBUTTON, pt.x, pt.y, 0, hDlg, NULL); > > > > > return 0; > > > > > case WM_MOUSEMOVE: > > > > > if(bCapture) { > > > > > pt.x = LOWORD(lParam); pt.y = HIWORD(lParam); > > > > > ClientToScreen(hDlg, &pt); > > > > > SetWindowPos(hDlg, 0, pt.x - mouseX, pt.y - mouseY, 0, 0, SWP_NOZORDER | SWP_NOSIZE); > > > > > } > > > > > return 0; > > > > > BruNews, ciao... > > > > > > > > > > > > > > > ------------------------------- > > > > > Réponse au message : > > > > > ------------------------------- > > > > > > > > > > > heuh, comme je le disais je suis newbie :D > > > > > > regarde ce que j'ai mis dans OnMouseDown: > > > > > > > > > > > > > > > > > > POINT pt; > > > > > > GetCursorPos(&pt); //je prends les coordonnés x et y de la souris > > > > > > SetCapture(Form1); //je pose la capture sure la Form1 > > > > > > SetWindowPos(Form1, Form1, pt.x, pt.y, 200, 320, SWP_NOSIZE); //pt.x et pt.y sont les coordonnées de souris > > > > > > |
> > > > > > > > > > > > voilà, mais ca marche pas tout de meme, je ne sais pas ou est le probleme en effet.. > > > > > > > > > > > > si tu pourrais m'écrire un ptit exemple stp  > > > > > > a plus > > > > > > ::.:[bdk]:.:: > > > > > > > > > > > > > > > > > > ------------------------------- > > > > > > Réponse au message : > > > > > > ------------------------------- > > > > > > > > > > > > > doit te manquer la capture souris. > > > > > > > Regarde SetCapture() dans le MSDN. > > > > > > > Ne pas oublier ReleaseCapture(), son pendant, qui doit etre surveille et appele dans differents contextes. > > > > > > > Pendant la capture, SetWindowPos() fera tout a fait le travail, je te conseille cette solution car mieux parametrable que MoveWindow(). > > > > > > > BruNews, ciao... > > > > > > > > > > > > > > > > > > > > > ------------------------------- > > > > > > > Réponse au message : > > > > > > > ------------------------------- > > > > > > > > > > > > > > > Salut all, je suis newbie dans le cpp et j'ai l'habitude de fouiller dans les forums et dans les sources afin d'apprendre en douceur la fameuse prog cpp :) en bref voilà mon blème: > > > > > > > > > > > > > > > > J'ai une form crée sans les bords avec une image (genre Winamp) donc pas de barre de titre, donc le deplacement doit se faire à l'aide de l'image (bitmap) utilisé, et mon bleme est là, je sais pas comment?! J'ai essayé de faire sur l'image OnMouseDown les trucs genre SetWindowPos - passe pas, avec MoveWindow, passe pas nan plus :( enfin peut etre ca passerait mais le bleme ce que je sais pas le faire exactement.. quelqu'un de sympa peut m'aider svp?! > > > > > > > > > > > > > > > > Merci d'avance. > > > > > > > > ::.:[bdk]:.:: > > > > > > > > > > > > > > > > > > > > > > > > > > > >
|
|
Cette discussion est classée dans : form, image, genre, deplacer, cpp
Répondre à ce message
Sujets en rapport avec ce message
C++B6 : Deplacer une form sans la barre du titre [ par fabiin ]
Salutj'utilise C++builder 6,j'ai une form sans barre de titreet je voudrai la déplacer en cliquant n'import ou ailleur,g pensé utiliser le même code k
portrait robot en c++ [ par demo42 ]
bonjours a tous et a toutes j ai un projet informatique a faire et je galere trop je doit realiser un logiciel en c++ de portrait robot et je ne sais
Intégrer une image dans un programme [Dev-cpp] [ par by_rabbit_08 ]
Salut!! Je me demandais si quelqu'un savait comment intégrer une image dans un exécutable, et pouvoir l'utiliser ensuite... Est-ce que quelqu'un peut
Deplacer une image sur un bouton [ par hadrien1 ]
Voila je ne sais plus quoi faire, ca fais 2 semaine que je cherche, je trouve quelque bibe de code mais pas ce que je cherche :( Mon problème : Je su
Acquisition d'image aved dev cpp [ par sultan_kafila ]
the peace cannot be kept by forcebonjour tt le monde je suis en stage actuellement et je cherche un code source qui fait de l'acquisition d'image avec
ressources dev-cpp [ par deck_bsd ]
Bonjour,Voila je veu mettre une image dans un controle static. Tout vas bien pour ce qui est des OBM (OBM_CHECK,...) tout s'affiche parfaitement. Le p
afficher une image comme fond sous dev-cpp [ par sebastienmz ]
bonjour j'ai essayer http://www.cppfrance.com/code.aspx?ID=16811 mais elle marche pas j'ai l'impression que le case WM_PAINT marche pas comment faire
IMAGE_OPTIONAL_HEADER32 [ par kiki67100 ]
Bonjour a tous, Voila j'ai trouvez un code http://rafb.net/p/CPapmn32.html mais dev c++ me fait un erreur 14 C:\Dev-Cpp\id.cpp `IMAGE_OPTIONAL_HEAD
.h et .cpp avec DEV [ par medACK ]
salut, après avoir avoir fais plein d'applications en 2D, je veux maintenant monter 1 moteur.mon problème n'est pas coté algorithmique mais plutôt cot
afficher image dans un picture visual cpp j'ai déjà debuté l' application [ par maxoule ]
afficher image dans un picture visual cpp j'ai déjà debuté l' application ,si quelqu'un veux bien m'aider
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|