Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Problème capture écran + RichTextBox [ Archives / Graphique ] (Manu94600)

mardi 4 avril 2006 à 18:35:47 | Problème capture écran + RichTextBox

Manu94600

Salut à tous,

J'ai un souci. Mais avant tout je vais expliquer ce que j'ai fait comme programme.
Voilà j'ai une form, sur cette form, j'ai un RichTextBox.

Le BackGround de ma form est une image. Cette image est consitué d'un triangle noir, et tout autour j'ai du rouge. Je définis la couleur de transparence en Rouge.
Ce qui me donne une form triangulaire. Au sein de ce triangle j'ai placé ma RichTextBox.

Mon premier souci : Je donne la possibilité à l'utilisateur de saisir une autre couleur de caractère dans la RichTextBox. Du coup mon souci, c'est que si l'user veux écrire en rouge, cette couleur étant transparente alors j'aurai les lettres transparentes. Je voudrais pour ce premier souci savoir s'il y avait un moyen que la transparence s'applique qu'à la form et nom aux controles possés sur la form.

Mon deuxième souci :  c'est que je voudrais imprimer cette form. Mais quand je fais une capture d'ecran, j'ai deux autres souci :). Premièrement il me capture non pas avec la transparence, mais avec la couleur de fond (Rouge).
Deuxièment et c'est là le plus embetant, c'est que ma RichTextBox ne s'affiche pas, du moins le text, car on voit la bordure.

Merci de votre aide.

@+

Manu

mardi 4 avril 2006 à 23:10:56 | Re : Problème capture écran + RichTextBox

Lutinore

Administrateur CodeS-SourceS

Salut tu peux remplacer la couleur de fond transparente par une région :




// Dans le constructeur de la forme.

Point[ ] points = new Point[ ]
{
    new Point( 10, 110 ),
    new Point( 110, 10 ),
    new Point( 210, 110 )
};

GraphicsPath path = new GraphicsPath( );
path.AddPolygon( points );

this.Region = new Region( path );


mardi 4 avril 2006 à 23:13:39 | Re : Problème capture écran + RichTextBox

Manu94600

Qu'est ce que t'appel Region ?? Je début avec tous ce qui est graphic alors là, je comprend pas c'est quoi la région??

Manu

mercredi 5 avril 2006 à 00:19:25 | Re : Problème capture écran + RichTextBox

Lutinore

Administrateur CodeS-SourceS
Bha.. je t'ai donné un exemple, comme tu peux le voir la classe Form ( Control ) contient une propriété nommé Region, qui attend un objet de la classe Region.

mercredi 5 avril 2006 à 00:21:09 | Re : Problème capture écran + RichTextBox

Lutinore

Administrateur CodeS-SourceS
La classe Region sur MSDN :

[ Lien ]

jeudi 6 avril 2006 à 11:10:03 | Re : Problème capture écran + RichTextBox

Manu94600

Salut,

Je viens de tester ton code. Ca me fait bien une form, le problème c'est que si la form est ronde.
Mon image est un triangle disign.

Manu

vendredi 7 avril 2006 à 08:48:18 | Re : Problème capture écran + RichTextBox

Lutinore

Administrateur CodeS-SourceS
Euh je comprends pas ce que tu dis là !?

Mon exemple c'est pour avoir une forme triangulaire, c'est bien ce que tu voulais ?

vendredi 7 avril 2006 à 08:52:50 | Re : Problème capture écran + RichTextBox

Manu94600

Désolé la fatigue :).

Je voulais dire que ça me fait bien une form triangle :), mais mon image est arrondi, sur les bords du coup je vois pas comment faire. Et Mon image n'est pas un rectangle régulier. C'est à dire que les cotés ne sont pas tout à fait droit.

Merci :)

Manu

samedi 8 avril 2006 à 05:46:15 | Re : Problème capture écran + RichTextBox

Lutinore

Administrateur CodeS-SourceS
Réponse acceptée !

Ce que tu veux c'est une région qui correspond exactement à ton bitmap !?

Cette fonction est pas très optimisée, passe le bitmap et la couleur de fond transparente.


private Region MakeRegionFromBitmap( Bitmap bitmap, Color transparency )
{
    if ( bitmap == null )
        throw new ArgumentNullException( );

    int width = bitmap.Width;
    int height = bitmap.Height;
    GraphicsPath path = new GraphicsPath( );

    for ( int y = 0; y < height; y++ )
    {
        for ( int x = 0; x < width; x++ )
        {
            if ( bitmap.GetPixel( x, y ) != transparency )
            {
                path.AddRectangle( new Rectangle( x, y, 1, 1 ) );
            }
        }
    }

    Region region = new Region( path );
    path.Dispose( );
    path = null;

    return region;
}


samedi 8 avril 2006 à 09:17:18 | Re : Problème capture écran + RichTextBox

Manu94600

Alors je réexplique mon problème.
Admettons une form bizare. On va prendre l'exemple d'une voiture. On prend un image de voiture, et on applique la couleur rouge en arrière plan. La méthode que j'utilise pour que la forme de la form soit de la forme de la voiture : est de mettre comme couleur de transparence la couleur Rouge, et d'enlever les bordures de la form.

Jusque là ça marche nickel.
Mon premier problème c'est que sur cette forme j'ai mit un RichTextBox. Et que je donne la possibilité à l'utilisateur de changer la couleur de la police. Et si l'user met la police en rouge. Les caractères sélectionnés seront transparent car le rouge est la couleur de transparence.
1 : Donc pour ce problème je demandais s il y avait moyen d'appliquer cette transparence qu'à la form et non aux controles possé dessus ?? (Ma RichTextBox)

Mon deuxième souci c'est que cette form je veux l'imprimer.
J'ai cherché sur le forum comment le faire et j'ai eu une première solution qui est de faire un ScreenShot de la form.Mais le problème c'est qu'il me prend la form avec le fond initial sans la transparence, le rouge. Alors pour cela, je parcours le bitmap et quand je vois un pixel rouge, je le change en transparent, et ça marche :), mais le problème c'est que je ne vois pas le text de ma RichTextBox.
2 : Ici mon souci c'est que j'arrive pas à voir le texte du controle RichTextBox., je vois une ombre (bordure) du RichTextBox mais sans le texte.

Et le problème qui se posera quand je pourrais afficher le texte c'est que s'il est en rouge, il sera supprimé, il sera transparent.

Si quelqu'un à des infos ?

Merci @+

Manu


1 2

Cette discussion est classé dans : form, richtextbox, rouge, souci, capture


Répondre à ce message

Sujets en rapport avec ce message

[C#] Afficher une Form dans une richTextBox [ par karshnod ] Bonjour,j'aimerais afficher une Form dans une richTextBox,j'ai autoriser ma Form1 a posserder les Mdi, et j'ai creer une richTextBox.mais je n'arrive Bug dans le richtextbox [ par Fildomen ] Salutje viens de detecter un bug dans le rtb de c#2005 beta, voila l'article que j'ai apssé à microsoft ( merci google traduction)<A href="http://lab. Mon rectangle ne se retrace pas sur ma RichTextBox [ par DIMUSERS ] Bonjour,Ma question doit être bête, mais on dit qu'il vaut mieux un qui sait que dix qui cherchent. Alors voilà : J'ai une form (voir le code plus bas Affichage d'une FORM dans un autre THREAD [ par dhofer ] Salut,Je ne trouve pas comment faire pour afficher une autre FORM contenant un progressbar pour faire patenter les utilisateur pendant l'extraction de Insérer une forme, dans une form [ par _apo_Spy_Keny ] Bonjour,Je cherche a insérer une forme complète (type Windows.Form) dans une autre form !J'ai essayé plusieurs méthode comme :   Control c;  for (int capture d'une image à partire de la video [ par smaouiomar ] Bonjour. J'ai pas trouvé de solution pour capturer une image à partir d'une video déja recupéré de ma web cam avec windows media encoder9.quelqu'un pe Form affiché l'écran [ par taoetc ] Bonjour,je vous explique mon problème :j'ai une form principale qui appelle une autre form ( mais pas en MDI). Je lance la seconde form en pricisant q [Besoin d'aide] passer un paramètre de form en form [ par adrien_de_toulouse ] Bonjour, mon architecture:Une fenêtre FormPrincipal avec comme attribut une autre fenêtre FormCarto.J'ai une instance de type Vehicule dans ma FormPri pas de focus et selection impossible [ par DarKBreToN ] Bonjour tout le monde j'ai un probleme dans un projet. Je dois afficher une form a l'interieur d'un tabcontrol. Pour cela j'ai du mettre la propriété détecter si un form est ouvert [ par titi66 ] bonjourdans une appli, j'ouvre des formulaires (non modaux)  contenant des images. j'aimerai ne pas ouvrir 2 fois le même formulaire.Comment détecter


Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,296 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.