J'utilise un SDK tiers qui obtient hwnd (handle de fenêtre) et peint quelque chose sur ma fenêtre. Et je veux spécifier la région de peinture de fenêtre (gauche, droite, haut, bas)? Comment est-ce possible de le faire? Je trouve la fonction WINAPI SetWindowRgn, mais ce n'est pas bon pour moi parce que cette fonction spécifie toute la région de la fenêtre. Je dois spécifier seulement la zone de peinture de fenêtre.Spécifier la région de peinture de fenêtre dans WINAPI
Répondre
S'il est possible de donner à cette bibliothèque un HDC
au lieu de la poignée de la fenêtre - vous devriez le faire. En d'autres termes, obtenez le dessin DC pour la zone client de votre fenêtre (GetDC
), créez la zone de découpage nécessaire et définissez-la (SelectClipRgn
).
Dans le cas où votre bibliothèque insiste sur l'acceptation de la poignée de fenêtre - je peux proposer la solution suivante:
dans votre fenêtre créer une autre fenêtre enfant, définissez la région appropriée pour elle. Et donnez le handle de cette fenêtre à votre bibliothèque.
SetWindowRgn() est exactement ce dont vous avez besoin. Vous pouvez créer votre région à partir d'un rectangle en utilisant CreateRectRgn(). Une bonne introduction aux régions de fenêtre peut être trouvée here.
Vous pouvez également modifier la zone non-client de votre fenêtre, mais je ne le recommanderais pas, car il a plusieurs effets secondaires.
- 1. Gestion de fenêtre/région MVVM
- 2. Liste dans JScrollPane peinture à l'extérieur de la fenêtre
- 3. Problème de peinture de fenêtre Java
- 4. Problème de peinture sous forme de fenêtre
- 5. Comportement étrange de winAPI
- 6. Comment redimensionner la fenêtre en utilisant WinAPI
- 7. Capture d'écran de la fenêtre en utilisant WinAPI
- 8. Mise à jour de la région derrière une fenêtre redimensionnée
- 9. A propos de Windows le cycle de peinture d'une fenêtre
- 10. Win32 SDK fenêtre enfant peinture (C/C++)
- 11. Création d'un menu contextuel personnalisé Fenêtre (WinAPI)
- 12. Problèmes de région de scintillement/mort maximisant une fenêtre MFC
- 13. XNA étrange peinture 3D lors de la peinture texte
- 14. désactiver la peinture de fond
- 15. recherche de fonctions winapi
- 16. comment régler la région de GDI HDC?
- 17. Masquage de la fenêtre de la barre des tâches en C# avec WinAPI
- 18. Petit problème de peinture des barres de défilement avec MFC
- 19. optimisation de la peinture de widget
- 20. Substitution de la méthode de peinture DataGridViewTextBoxCell
- 21. Peinture personnalisée de JPanel
- 22. Comment trouver la région sale de la fenêtre lorsque WindowProc reçoit un message WM_PAINT ...?
- 23. NSOpération bloque la peinture de l'interface utilisateur?
- 24. Peinture personnalisée QMainWindow barre de titre
- 25. Evénement roue de la souris horizontale? (WinAPI)
- 26. Lignes de peinture dans un JTable
- 27. Surveillance de région - didEnterRegion
- 28. Utilisation de WINAPI dans les applications Qt
- 29. ajouter des objets de peinture android
- 30. Que signifie "WINAPI" dans la fonction principale?
Merci, j'ai créé une autre fenêtre enfant. – kesrut