2010-10-15 9 views
0

Est-il possible de créer une fenêtre enfant redimensionnable uniquement sur le bord droit et recouvrir une partie du côté gauche de la fenêtre parent? Similaire à celui du panneau Historique de Firefox.Fenêtre latérale redimensionnable

Répondre

0

Il n'y a aucun moyen de le faire en un seul coup AFAIK. Cependant, vous pouvez créer une fenêtre enfant comme d'habitude et utiliser GetWindowRect() pour obtenir les dimensions du rectangle englobant (dans ce cas, nous nous intéressons aux structures supérieure, inférieure et droite de RECT); interceptez ensuite le message WM_MOUSEMOVE et continuez de surveiller la coordonnée actuelle de la souris x & y à partir du paramètre lParam;

Si la position actuelle de la souris est sur le côté droit de la fenêtre, appelez LoadCursor() ou LoadImage() pour définir la forme du curseur sur IDC_SIZEWE; puis utilisez SetCapture() et ReleaseCapture() pour écouter l'événement de souris glisser-déposer et utilisez SetWindowPos() pour définir la nouvelle taille de la fenêtre.