Ciao a tutti. Grazie per le risposte.
Dunque. Il mio problema non è quello di disegnare una form con una forma particolare e basta... io vorrei evitare il fastidiosissimo effetto che si viene a creare nei bordi quando si usa il trasparencykey. Inoltre vorrei che l'ombra della finestra venisse mostrata in modo corretto quindi con il giusto grado di trasparenza rispetto a tutto quanto possa esserci sullo sfondo.
Il codice che ho trovato su internet fa uso delle seguenti API:
codice:
[DllImport("gdi32.dll", ExactSpelling = true, SetLastError = true)]
public static extern IntPtr CreateCompatibleDC(IntPtr hDC);
[DllImport("user32.dll", ExactSpelling = true, SetLastError = true)]
public static extern IntPtr GetDC(IntPtr hWnd);
[DllImport("gdi32.dll", ExactSpelling = true)]
public static extern IntPtr SelectObject(IntPtr hDC, IntPtr hObj);
[DllImport("user32.dll", ExactSpelling = true)]
public static extern int ReleaseDC(IntPtr hWnd, IntPtr hDC);
[DllImport("gdi32.dll", ExactSpelling = true, SetLastError = true)]
public static extern int DeleteDC(IntPtr hDC);
[DllImport("gdi32.dll", ExactSpelling = true, SetLastError = true)]
public static extern int DeleteObject(IntPtr hObj);
[DllImport("user32.dll", ExactSpelling = true, SetLastError = true)]
public static extern int UpdateLayeredWindow(IntPtr hwnd, IntPtr hdcDst, ref Point pptDst, ref Size psize, IntPtr hdcSrc, ref Point pptSrc, Int32 crKey, ref BLENDFUNCTION pblend, Int32 dwFlags);
[DllImport("gdi32.dll", ExactSpelling = true, SetLastError = true)]
public static extern IntPtr ExtCreateRegion(IntPtr lpXform, uint nCount, IntPtr rgnData);
Non vi posto tutto il codice perchè è lunghetto. Al max vi rimando a link se necessario.
Che ne pensate? Nessuno ha mai voluto abbellire la propria applicazione con una Splash e un AboutBox di forma particolare e con ombreggiatura?