2009-09-13 7 views
1

Je suis l'intégration d'une application tierce dans un panneau sur un formulaire Windows C# (en utilisant SetParent de user32.dll). Je dois ensuite désactiver le style de la barre de titre WS_CAPTION afin qu'il ressemble à une partie de l'application d'hébergement.Comment désactiver le style WS_CAPTION d'une fenêtre (en utilisant user32.dll)?

Comment changer le style d'une fenêtre pour ce faire?

Pour l'exemple, disons _hWnd est le handle de l'application à intégrer.

Répondre

2

Si la mémoire est présente, vous pouvez faire un GetWindowLong sur le style, | = ~ WS_CAPTION sur cette valeur, puis sur SetWindowLong. Voir ces API dans MSDN.

Voir aussi: http://www.codeguru.com/forum/showthread.php?t=352963

+1

Il devrait être & =, pas | =. –

0

Utilisez GetWindowLong pour récupérer le style de fenêtre, masquer les WS_CAPTION bits, et ensuite définir le style mis à jour à l'aide SetWindowLong:

var style = GetWindowLong(_hWnd, GWL_STYLE); 
SetWindowLong(_hWnd, GWL_STYLE, style & ~WS_CAPTION); 

et suivant code d'assistance:

const int GWL_STYLE = -16; 
const int WS_CAPTION = 0x00C00000; 

[DllImport ("user32")] 
private static extern int GetWindowLong(System.IntPtr hwnd, int nIndex); 

[DllImport ("user32")] 
private static extern int SetWindowLong(System.IntPtr hwnd, int index, int newLong);