"das waren Zeiten..."
Das werden wir in spätestens 20 Jahren wieder sagen 😉 (Dann kann ich auch mitreden.. g)
@ Bakachan:
GENIAL! 😁
Hallo bhelbig,
ich freue mich, dass ich dir weiterhelfen konnte 😉
Gruß Dennis
Wozu soll das denn genau dienen / wo und wie soll es eingesetzt werden?
Das wär vorerst einmal interessant zu wissen.
Gruß Dennis
wie kommt man in Photoshop denn auf diese Tastenkombination? Das würd' mich jetzt so als Fotograf doch mal interessieren... g
Gruß Dennis
Hallo bhelbig,
stimmt, jetzt wo ich mich noch etwas mehr erinnere, hatte ich es schließlich mit DIESEM Artikel umgesetzt. Ein BSP kann ich dir leider nicht geben, weil das Programm für meine Firma war.
Ich hoffe ich konnte dir nun weiterhelfen.
Gruß Dennis
Hallo bhelbig,
ja das geht, du musst halt die Grafik dementsprechend mit Transparents erstellen. Somit habe ich bei meiner Anwendung zum Bsp. einen halbtransparenten Schatten erstellt. 😉
Gruß Dennis
Hallo bhelbig,
ich hatte mal das gleiche Problem, ich habe es mittels DIESEN Artikels gelöst.
Schau dir das mal an.
Gruß Dennis
vielleicht
"VALUES ('@p1','@p2','@p3','@p4','@p5','@p6','@p7','@p8','@p9')"
?
Ich kenn mich in diesem Themengebiet aber nicht sooo gut aus..
Gruß Dennis
@ Bakachan:
tatsächlich! es ist Alt+Shift!!
Vielen Dank!
also ich vermute mal das es eine Tastenkombination ist... denn mir passiert es ab und zu dann, wenn ich nur am codieren bin und sonst nichts anders mache.
Auch anderen Leuten aus meiner Firma ist dies schon vorgekommen.
Hallo @ all:
ich habe folgendes Problem:
Manchmal kommt es vor, dass ich gerade am Quelltext am tippen bin, und plötzlich gechieht es: wenn ich auf's "y" drücke erscheint plötzlich ein "z".
Mit anderen Worten: Durch irgendeine von mir unbekannten Tastenkombination wurde meine Tastatur auf amerikanisch umgestellt. Kennt ihr diese?
Gruß Dennis
jap ich wünsche hier auch allen frohe Weihnachten und einen guten Rutsch ins neue Jahr!
lg Dennis
Ja von mir auch ein Glückwunsch 😉
lg Dennis
Hallo herbivore,
okay, dann ist es leider ein zu großer Aufwand.
Vielen Dank für die Auskunft!
lg Dennis
Hallo herbivore,
nein bei mir ist es nicht der Fall. Doch wenn ich mal meine ganzen Kontakte anschaue ist es erschreckend wie viele tatsächlich ihre eigene Emailadresse verwenden.
Deswegen finde ich diesen Schutz nicht verkehrt, da er für die Email ja sowieso schon vorhanden ist dürfte es doch kein allzu großer Aufwand sein, oder nicht?
Es bringt nur Vorteile, keine Nachteile 😉
lg Dennis
Hallo herbivore,
okay, das wusste ich nicht, dann kann die Email ja verschlüsselt werden.
Naja ich meine ja nicht alle Screennamen, sondern lediglich den MSN-Screenname, da dieser ja aus einer Emailadresse besteht. Und dieser muss nicht nur der MSN-Screenname, sondern kann ja auch eine Emailadresse sein.
lg Dennis
Hallo @ all!
mir ist gerade aufgefallen, dass in den Profilen der MSN-Screenname und die Emailadressen im Klartext angezeigt werden. Dies ist doch ein gefundenes Fressen für Spamming..oder nicht?
Wäre es nicht denkbar, diese als Bild oder Symbol anzuzeigen und sie im Quelltext als verschlüsselt "niederzulegen"?
lg Dennis
@ Yellow:
okay..vielen Dank für deine Auskunft! Na...dann bin ich ja mal gespannt 😉
lg Dennis
@ onlinegurke:
Praktisch brauchst du keine Zweifel zu haben...mir ist es auch schon passiert.. 😁
lg Dennis
ja ich kannte es auch schon...es ist einfach GENIAL 😁
lg Dennis
japp...das ist wirklich kein Problem..sehr schneller, netter und unkomplizierter Support!
lg Dennis
Ich finde die Idee auch sehr interessant...eine wirklich gute Idee - auch ich stand öfters vor den oben genannten Problemen.
lg Dennis
und schon wieder fast ein halbes Jahr rum...hat sich was getan?
lg Dennis
@serial: Das wäre super..aber glaube ich nicht dran..
lg Dennis
wow super vielen Dank für diesen Tipp! Bei mir klappt alles einwandfrei! (ie + firefox)
lg Dennis
Und Punkt 2 (okay erledigt..) wäre auch nicht schlecht 😉
Vielen dank ich werde es mir mal anschauen!
lg Dennis
ui...und das geht nicht ein wenig einfacher? Ich dachte da wär nun nur eine Kleinigkeit.. =D
Danke ich werds mir mal anschauen!
lg Dennis
Hallo @ all!
Gibt es eine Möglichkeit in einem Eintrag einer normalen Listbox die Textfarbe unterschiedlich zu setzen?
Der Grund:
In meiner Listbox werden alle über eine Suche gefundenen Einträge aufgelistet. Nun woll in jedem Eintrag das entsprechende Suchwort makiert werden. Bsp:
Suche: "csharp"
Listboxeintrag: "www.mycsharp.de"
Danke für alle Antworten!
lg Dennis
okay...falls irgendwann mal jemand das gleiche Problem hat, hier eine gute Lösung dafür:
CodeProject: Alpha blended windows forms
lg Dennis
ja es kommt alles von youtube. Es wird einfach in der Kategorie "Musik" in den Titeln der Videos nach dem eingegebenen Interpreten gesucht, eigentlich so simple und doch genial 😉
lg Dennis
Ich hatte schonmal so etwas gesehen, schon damals habe ich mir die Frage gestellt ob bzw. wie sowas legal ist.
Allerdings ist die Auswahl nicht so groß wie bei Songza
hey das ist wirklich genial....und es werden auch sehr viele Songs gefunden! Wirklich klasse Seite, danke für die Empfehlung!
lg Dennis
Weiß niemand eine Antwort? Denn ich habe nun das gleiche Problem... 😉
lg Dennis
Gut dann würde ich mir aber am Ende des Themas einen Link wünschen, in der der Autor bestätigen kann, dass eine Lösung für das Problem gefunden wurde. Wisst ihr was ich meine? Dies könnte in der Übersicht dann mit "[Gelöst]" oder so ähnlich angezeigt werden. So etwas habe ich in anderen Foren schon öfters gesehen.
Gruß Dennis
Hm...soweit hatte ich noch gar nicht gedacht g
Hallo!
Stellt euch vor jemand eröffnet ein neues Thema und erhält keine Antworten. Nun ist ihm selber schon eine Verbesserung seines geposteten Codes aufgefallen, postet den neuen Code als neue Antwort und bittet aber fortlaufend nach Hilfe.
Was mich nun stört oder was ich irritierend finde:
In der Übsicht erlischt "[Ohne Antwort]" wobei ja eigentlich keine Antwort gefallen ist.
In der Übersicht bei "Antworten" steht eine "1", obwohl ja wiederum eigentlich keine Antwort erfolgt ist.
Man sollte vielleicht hingehen und überprüfen, ob die Antworten eventuell vom Autor des Themas gepostet wurden.
Also ich fände dies praktischer 😉
Gruß Dennis
okay...ich habe noch ein Online-Beispiel gefunden, dabei wird die Form angezeigt und oben links neben dieser Form die Grafik mit dem Schatten. Jetzt müsste die Grafik nur noch irgendwie in die Form hinein.
Hilft euch das vielleicht weiter um mir zu helfen...? 😉
[DllImport("gdi32.dll", EntryPoint = "GdiAlphaBlend")]
public static extern bool AlphaBlend(IntPtr hdcDest, int nXOriginDest, int nYOriginDest,
int nWidthDest, int nHeightDest,
IntPtr hdcSrc, int nXOriginSrc, int nYOriginSrc, int nWidthSrc, int nHeightSrc,
BLENDFUNCTION blendFunction);
[DllImport("gdi32.dll", ExactSpelling = true, SetLastError = true)]
static extern IntPtr CreateCompatibleDC(IntPtr hdc);
[DllImport("gdi32.dll", ExactSpelling = true, SetLastError = true)]
static extern bool DeleteDC(IntPtr hdc);
[DllImport("gdi32.dll", ExactSpelling = true, SetLastError = true)]
static extern IntPtr SelectObject(IntPtr hdc, IntPtr hgdiobj);
[DllImport("gdi32.dll", ExactSpelling = true, SetLastError = true)]
static extern bool DeleteObject(IntPtr hObject);
[DllImport("user32.dll", ExactSpelling = true, SetLastError = true)]
public static extern IntPtr GetDC(IntPtr hWnd);
[StructLayout(LayoutKind.Sequential)]
public struct BLENDFUNCTION
{
byte BlendOp;
byte BlendFlags;
byte SourceConstantAlpha;
byte AlphaFormat;
public BLENDFUNCTION(byte op, byte flags, byte alpha, byte format)
{
BlendOp = op;
BlendFlags = flags;
SourceConstantAlpha = alpha;
AlphaFormat = format;
}
}
const byte AC_SRC_OVER = 0x00;
const byte AC_SRC_ALPHA = 0x01;
private void Form1_Load(object sender, EventArgs e)
{
Bitmap bitmap = (Bitmap)Bitmap.FromFile(@"C:\Eigene Dateien\Visual Studio 2005\Projects\Goerlitz.EmployeeInfo\Görlitz Employee Info\_Bin\desk.png");
IntPtr g = GetDC(IntPtr.Zero);
int x = 40;
int y = 40;
byte Alpha = 255;
IntPtr pSource = CreateCompatibleDC(g);
IntPtr pOrig = SelectObject(pSource, bitmap.GetHbitmap(Color.Black));
AlphaBlend(g, x, y, bitmap.Width, bitmap.Height, pSource, 0, 0, bitmap.Width, bitmap.Height, new BLENDFUNCTION(AC_SRC_OVER, 0, Alpha, AC_SRC_ALPHA));
IntPtr pNew = SelectObject(pSource, pOrig);
DeleteObject(pNew);
DeleteDC(pSource);
}
Danke für alle Antworten!
Gruß Dennis
Hallo@all!
Im 2. Beitrag ist der aktuelle Quellcode!**
Ich glaube die Frage die ich euch jetzt stellen werde, ist relativ knifflig.
Ihr müsst euch vorstellen, ich habe eine PNG-Grafik die transparente Farben enthält. Die Grafik wird in ein Formular geladen und auch korrekt angezeigt, also richtig schön mit Schatten 😉 Das einzigste Problem: Es werden keinerlei Controls mehr angezeigt. Dabei ist das witzige, dass sie reagieren, wenn man auf sie klickt (da wo man sie normalerweise sehen würde).
Ich hatte den Quelltext aus einem Beispiel und auf meine bedürfnisse angepasst. Auch in dem nicht-geändertem Beispiel sind die Controls visuell nicht zu entdecken.
Vielleicht wisst ihr ja eine Lösung 😉
Also hier ersteinmal mein Quellcode:
(Beide Quelltexte zusammen sieht viel mehr aus als es wirklich ist 😉)
Die ist meine Klasse "PInvoke", hier findet der hauptsächliche Prozess statt:
public class PInvoke : Form
{
#region Win32 GDI functions
/// <summary>
// a static class to expose needed win32 gdi functions.
/// </summary>
public class Win32
{
public enum Bool
{
False = 0,
True
};
[StructLayout(LayoutKind.Sequential)]
public struct Point
{
public Int32 x;
public Int32 y;
public Point(Int32 x, Int32 y)
{
this.x = x; this.y = y;
}
}
[StructLayout(LayoutKind.Sequential)]
public struct Size
{
public Int32 cx;
public Int32 cy;
public Size(Int32 cx, Int32 cy)
{
this.cx = cx; this.cy = cy;
}
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
struct ARGB
{
public byte Blue;
public byte Green;
public byte Red;
public byte Alpha;
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct BLENDFUNCTION
{
public byte BlendOp;
public byte BlendFlags;
public byte SourceConstantAlpha;
public byte AlphaFormat;
}
public const Int32 ULW_COLORKEY = 0x00000001;
public const Int32 ULW_ALPHA = 0x00000002;
public const Int32 ULW_OPAQUE = 0x00000004;
public const byte AC_SRC_OVER = 0x00;
public const byte AC_SRC_ALPHA = 0x01;
[DllImport("user32.dll", ExactSpelling = true, SetLastError = true)]
public static extern Bool UpdateLayeredWindow(IntPtr hwnd, IntPtr hdcDst, ref Point pptDst, ref Size psize, IntPtr hdcSrc, ref Point pprSrc, Int32 crKey, ref BLENDFUNCTION pblend, Int32 dwFlags);
[DllImport("user32.dll", ExactSpelling = true, SetLastError = true)]
public static extern IntPtr GetDC(IntPtr hWnd);
[DllImport("user32.dll", ExactSpelling = true)]
public static extern int ReleaseDC(IntPtr hWnd, IntPtr hDC);
[DllImport("gdi32.dll", ExactSpelling = true, SetLastError = true)]
public static extern IntPtr CreateCompatibleDC(IntPtr hDC);
[DllImport("gdi32.dll", ExactSpelling = true, SetLastError = true)]
public static extern Bool DeleteDC(IntPtr hdc);
[DllImport("gdi32.dll", ExactSpelling = true)]
public static extern IntPtr SelectObject(IntPtr hDC, IntPtr hObject);
[DllImport("gdi32.dll", ExactSpelling = true, SetLastError = true)]
public static extern Bool DeleteObject(IntPtr hObject);
}
#endregion
}
Und dies ist meine Form, in der die Grafik angezeigt wird, nur die Controls leider nicht:
public partial class Form2 : Form
{
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x00080000; // This form has to have the WS_EX_LAYERED extended style
return cp;
}
}
public Form2()
{
this.InitializeComponent();
this.TopMost = true;
this.FormBorderStyle = FormBorderStyle.FixedDialog;
this.MinimizeBox = false;
this.MaximizeBox = false;
this.ControlBox = false;
this.Width = 3090;
this.Height = 1980;
Bitmap bitmap = (Bitmap)Bitmap.FromFile("desk.png");
this.SetBitmap(bitmap, 255);
}
public void SetBitmap(Bitmap bitmap, byte opacity)
{
IntPtr screenDc = PInvoke.Win32.GetDC(IntPtr.Zero);
IntPtr memDc = PInvoke.Win32.CreateCompatibleDC(screenDc);
IntPtr hBitmap = IntPtr.Zero;
IntPtr oldBitmap = IntPtr.Zero;
try
{
hBitmap = bitmap.GetHbitmap(Color.FromArgb(0)); // grab a GDI handle from this GDI+ bitmap
oldBitmap = PInvoke.Win32.SelectObject(memDc, hBitmap);
PInvoke.Win32.Size size = new PInvoke.Win32.Size(bitmap.Width, bitmap.Height);
PInvoke.Win32.Point pointSource = new PInvoke.Win32.Point(0, 0);
PInvoke.Win32.Point topPos = new PInvoke.Win32.Point(Left, Top);
PInvoke.Win32.BLENDFUNCTION blend = new PInvoke.Win32.BLENDFUNCTION();
blend.BlendOp = PInvoke.Win32.AC_SRC_OVER;
blend.BlendFlags = 0;
blend.SourceConstantAlpha = opacity;
blend.AlphaFormat = PInvoke.Win32.AC_SRC_ALPHA;
PInvoke.Win32.UpdateLayeredWindow(Handle, screenDc, ref topPos, ref size, memDc, ref pointSource, 0, ref blend, PInvoke.Win32.ULW_ALPHA);
}
finally
{
PInvoke.Win32.ReleaseDC(IntPtr.Zero, screenDc);
if (hBitmap != IntPtr.Zero)
{
PInvoke.Win32.SelectObject(memDc, oldBitmap);
PInvoke.Win32.DeleteObject(hBitmap);
}
PInvoke.Win32.DeleteDC(memDc);
}
}
protected override void WndProc(ref Message m)
{
if (m.Msg == 0x0084 /*WM_NCHITTEST*/)
{
m.Result = (IntPtr)2; // HTCLIENT
return;
}
base.WndProc(ref m);
}
}
Ich wäre euch unendlich dankbar wenn ihr auch den Quelltext mal anschaut und mir eventuell weiterhelfen könntet, vielen Dank für alle Antworten! 🙂
Gruß Dennis
Ich habe das gleiche Problem, aber ich würde es gern etwas professioneller gestalten. Kann man vielleicht in einer Form irgendwie mit Ebenen oder so ähnlich arbeiten, vielleicht mit UserControls?
lg Dennis
So...also wie ich die Form transparent kriege ist im Prinzip kein Problem, einfach folgendes einfügen:
public Form1()
{
InitializeComponent();
base.Opacity = 0.5;
}
Das Problem ist nur, bisher sind alle meine Versuche gescheitert, die Form nur an bestimmten Stellen, also z.B. am Rand, transparemt zu kriegen.
Vielleicht ist es ja auch möglich, nur bestimme Kompenten, z.B. eine PictureBox transparent zu kriegen.
lg Dennis
Vielen vielen Dank für deine Hilfe und die Links! Ich werde sie mir nächste Woche mal anschauen....jetzt ist Feierabend 😉
lg Dennis
okay....aber wenn ich die 100 umändere... (habe ein wenig experimentiert) ändert sich lediglich der Farbverlauf, Transparenz ist nirgends zu entdecken.