A simple dialog with semi-transparent border (MFC)

Hi,
I have to make a image dialog with semi-transparency border in MFC.
I had web surfing all the day and found this solution in the codeproject.
http://www.codeproject.com/Articles/42032/Perfect-Semi-transparent-Shaped-Dialogs-with-Stand
But it creates two dialogs to make a semi-transparent dialog and the mechanism was so complex.
And the release of the dialog object is difficult so that it may have memory leaks.
I want a dialog (background is an image) with a semi-transparent border (corner - rounded).
And I have to make it with only one dialog. If it's possible, how can I do it?
Please help me, Thank you.

The child control will become semi-transparency as your dialog.
Do you want to show some child control on your dialog? If yes, you need the second dialog to host your child control. 
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click
HERE to participate the survey.

Similar Messages

  • Subtitles with semi-transparent background rectangle

    Hello -
    Is it possible to create a semi-transparent background that helps make subtitles more readable? I need to do this using the DVD SP interface or make a modification to a .stl file.
    Either method will work.
    I am using DVD SP 4.2.0

    It is possible only with graphic files STL variation.

  • Compton + Dwm: Shadow as semi-transparent border?

    Hi!
    http://i.imgur.com/XQME18jl.png
    I ran into this image while derping on the internet and I've been trying to get borders/shadows like in that picture for a some time. I know that this is achieved using Compton and Dwm, but I can't find a way how to do that.
    You can find more images with those borders from Desktop Threads from 4chan.
    Thanks!
    <appwl>
    -- mod edit: read the Forum Etiquette and only post thumbnails http://wiki.archlinux.org/index.php/For … s_and_Code [jwr] --

    In compton:
    "-c" argument for shadow.
    "-e" argument for border opacity.
    In "config.h" (of dwm):
    "normbordercolor" and "selbordercolor" for border color.
    "borderpx" for border size.

  • Semi-Transparency Blues

    Hi—
    I’m having problems with semi-transparency in a t-shirt design.
    The design includes both a reflection and a satin effect that fade from 0% transparent to 100% transparent.  The t-shirt manufacturer’s software, unfortunately, fills the missing area (where there would be a partial image) with a solid color rather than empty space.
    Upon speaking with the manufacturer, they recommended “simulating” transparency via dithering, using either a GIF or a PNG converted to an eight-bit paletted file.  I understand neither of these concepts, and even the designer who helped me create the shirt in the first place -- awesome guy --  was unable to make much headway.
    Would anyone on this forum have any suggestions on how to implement these, please?  I’m running out of options, and would hate to have to trash a cool design.
    Many thanks,
    --Cliff

    Mark--
    Thank you for weighing in!
    Unfortunately I do not: the manufacturer did not send me a picture of what their software did to the image, so I only have my original.  And it's a very large file, at over 100MB (for the layered psd).  I could separate out the "problem" layers, but I suspect they would look just like any other file that uses semi-transparency.  Apparently this issue affects all images using that technique (unless done via dithering).
    Apologies,
    --Cliff

  • Stage3D semi transparent textures

    I have been playing arounf with the Stage3D with moderate success but i have an issue rendering transparent textures.
    as you can see some of the faces at the back are only partially rendered.
    E.g. the bottom face is rendered through the front face but not through the side face)
    Does anyone have any idea what might be causing this sort of behaviour?
    you can see the demo here. (www.spoboyle.co.uk/demo/) click to pause the rotation
    I have also included a screen shot

    I have a solution now for the cube problem (or any convex polygon)
    cull the front faces draw the polygon and then cull the back faces and draw again.
    so generally when dealing with semi-transparent objects
    first draw all opaque objects
    then draw all semi-transparent objects in order starting with those furthest away from the camera (convex objects should be drawn twice as mentioned above)
    if you have any concave polygons all I can say is good luck!
    I have removed all the above links and placed all the files here.

  • Problem with opaque object/text showing as semi-transparent?

    I didn't start seeing this problem till today, but the past couple of times I've gone to create a new shape layer or text layer, it appears like it's at 50% opacity.  I've checked my layer settings, and they're all at 100% fill and opacity.  I can't see any reason why they'd be semi-transparent, and none of the settings I've tried have changed anything.  I've even tried deleting the shapes/text, saving my document, and starting over.  That worked one time, but this time it's not working.
    Even applying a color overlay still results in a semi-transparent shape.
    Anyone else have a similar issue and know how to fix it?  I am in the middle of doing a design for a client, for print, and I really can't be dealing with this right now.

    I ended up just deleting the group that was affected, saving it as a new file, and then rebuilding the new group from the new file. For some reason that worked.  I am not currently have the problem, so I can't show you what was happening, but I'll definitely look at these steps if it happens again.
    Thanks!
    Brooke

  • Exporting text with a semi transparent background that can be changed in PS or PP?

    I'm creating a logo with a semi transparent background that I want to place on top of photos in Photoshop and videos in Premiere.
    1. I do not see a transparent option when exporting as a .tiff. Is transparent .png my only option from AI?
    2. I will need different amounts of transparency for the background depending on the image or video it is being placed on. Is there a way to export this and still have control in Photoshop or Premiere of the amount of transparency to apply towards the background?
    Thanks!

    1. So you are suggesting to just copy from AI and paste into PS?
    2. Since the logo is text and the background is a rectangular shape, I need to make sure that I can lower the opacity in PS or PP independently of the text. I will have to do a test later, I do not have the file on this computer.
    Thanks.

  • Draw a border with a transparent shadow

    Hi, Is there any way to draw a border that has a shadow below it?
    I know that it's possible to use drawline() with a transparent color but it only works fine when the screen is completely repainted.
    Help please! becouse i'm going slightly mad...

    Y already know the borders in "javax.swing.border" but the idea is to draw popup menus with a transparent shadow on left and bottom sides.
    And I'm trying to do it with a border.
    An example of this would be menus in Windows XP.

  • Display a MFC Modal Dialog with CListBox in TestStand

    I want to display a MFC Modal Dialog with a CListBox element, but I can't fill the listbox with data.
    Here are some commands of my program:
    SequenceContext seqContext;
    Engine engine;
    seqContext.AttachDispatch(seqContextDisp, FALSE);
    engine.AttachDispatch(seqContext.GetEngine());
    HWND parentHwnd = (HWND)engine.GetAppMainHwnd();
    CSearch_Line_Window_Dialog dlg(CWnd::FromHandle(parentHwnd));
    dlg.m_SearchLineWindow_Listbox.m_hWnd = parentHwnd;
    (without this command I get the error "Debug Assertion Failed", because of ASSERT(::IsWindow(m_hWnd)))
    dlg.m_SearchLineWindow_Listbox.AddString("Hallo");
    dlg.DoModal();
    seqContext = NULL;
    engine = NULL;
    The dialog with the emtpy listbox appears, b
    ut without any text. I tried the same by using NotifyStartOfModalDialogEx and NotifyEndOfModalDialog. The example "MFC_Modal_Dialog" opens only a dialog without elements.
    I hope you can help me to solve my problem.
    Thank you.

    I've about the same problem and tried to implement your solution but can't get it to run. I always receive an assertion failure.
    I try to fill the ComboBox in a dialog with items at runtime. (use VC++ and MFC-DLL)
    the header of my dialog:
    class DlgSelectECU : public CDialog
    public:
    DlgSelectECU(CWnd* pParent = NULL);
    BOOL OnInitDialog();
    //{{AFX_DATA(DlgSelectECU)
    enum { IDD = IDD_DLGSELECTECU_DIALOG };
    CComboBox m_ECUList;
    CStringList m_StringList;
    //}}AFX_DATA
    //{{AFX_VIRTUAL(DlgSelectECU)
    protected:
    virtual void DoDataExchange(CDataExchange*pDX);
    //}}AFX_VIRTUAL
    protected:
    DECLARE_MESSAGE_MAP()
    the implementation of my dialog:
    DlgSelectECU:lgSelectECU(CWnd* pParent /*=NULL*/)
    : CDialog(DlgSelec
    tECU::IDD, pParent)
    //{{AFX_DATA_INIT(DlgSelectECU)
    //}}AFX_DATA_INIT
    BOOL DlgSelectECU:nInitDialog()
    POSITION pos = m_StringList.GetHeadPosition();
    while (pos)
    m_ECUList.AddString(m_StringList.GetNext(pos));
    return true;
    void DlgSelectECU:oDataExchange(CDataExchange* pDX)
    CDialog:oDataExchange(pDX);
    //{{AFX_DATA_MAP(DlgSelectECU)
    DDX_Control(pDX, IDC_COMBO_ECU, m_ECUList);
    //}}AFX_DATA_MAP
    my dll function TestStand calls looks like that:
    EXPORT CALLBACK SelectECU(char ECUs[1024])
    AFX_MANAGE_STATE(AfxGetStaticModuleState());
    DlgSelectECU Dlg;
    Dlg.m_StringList.AddTail("ITEM 1");
    if (Dlg.DoModal() == IDOK)
    // do something
    Running the sequence file in TestStand and calling the dll function descriped above causes an assertion failure each time I try to add anything to the StringList. Why? And what am I doing wrong? Is there
    a documentation about how to write dlls with MFC elements
    for use with TestStand using other tools than LabWindows/CVI? Everything I found so far is rather crude.
    Thanks!

  • Semi-transparent screen with a box that told me to restart my computer

    Tonight while working in Safari on the bodybugg website this semi-transparent line came down my computer like a curtain coming down at the movie theater. Then a gray box popped up telling me in several languages (english was at the top so I am guessing the other languages said the same thing) I needed to hold the power button down and restart my computer. Everything was locked up, keyboard, mousepad, etc, so I was left with no choice but to restart. Since restarting I have not encountered any problems. My software was up to date as of this past Saturday and I was not installing any items. Has anyone else encountered this as I can't find anything in the discussions. The box did not have any apple or mac logos on it.

    This is a kernel panic. Visit The XLab FAQs and read the FAQ on diagnosing kernel panics.
    You can use the Console application in your Utilities folder to locate the panic log. Post the log here and we may be able to help.

  • Is there a way to create a semi-transparency with Java?

    I would like to be able to create a semi transparent form and I was does anyone know how to do this?

    import java.awt.*;
    import java.awt.geom.*;
    import java.awt.image.*;
    import java.io.*;
    import java.net.*;
    import javax.imageio.*;
    import javax.swing.*;
    import javax.swing.event.*;
    public class CompositeTest extends JPanel {
        private BufferedImage backImage, frontImage;
        private float alpha = 1;
        public CompositeTest() throws IOException {
            backImage = ImageIO.read(new URL("http://today.java.net/jag/bio/JagHeadshot-small.jpg"));
            frontImage = ImageIO.read(new URL("http://today.java.net/jag/Image54-small.jpeg"));
        public Dimension getPreferredSize() {
            return new Dimension(backImage.getWidth(), backImage.getHeight());
        public void setAlpha(float alpha) {
            this.alpha = alpha;
            repaint();
        protected void paintComponent(Graphics g) {
            super.paintComponent(g);
            Graphics2D g2 = (Graphics2D) g;
            int x = (getWidth() - backImage.getWidth())/2;
            int y = (getHeight()- backImage.getHeight())/2;
            g2.drawRenderedImage(backImage, AffineTransform.getTranslateInstance(x, y));
            Composite old = g2.getComposite();
            g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha));
            x = (getWidth() - frontImage.getWidth())/2;
            y = (getHeight()- frontImage.getHeight())/2;
            g2.drawRenderedImage(frontImage, AffineTransform.getTranslateInstance(x, y));
            g2.setComposite(old);
        public static void main(String[] args) throws IOException {
            final CompositeTest app = new CompositeTest();
            JSlider slider = new JSlider();
            slider.addChangeListener(new ChangeListener(){
                public void stateChanged(ChangeEvent e) {
                    JSlider source = (JSlider) e.getSource();
                    app.setAlpha(source.getValue()/100f);
            slider.setValue(100);
            JFrame f = new JFrame("CompositeTest");
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            Container cp = f.getContentPane();
            cp.add(app);
            cp.add(slider, BorderLayout.SOUTH);
            f.pack();
            f.setLocationRelativeTo(null);
            f.setVisible(true);
    }

  • Can anyone tell me why games are semi transparent in Pogo? I only have this problem with Firefox but not with IE9 or Chrome

    When I click on a game, the game window opens and is solid, but when it's fully loaded, it becomes semi transparent and washed out. I can post a screen shot of what I'm talking about if this forum supports it.

    Hi,
    Please check if this happens in [https://support.mozilla.com/en-US/kb/Safe%20Mode Safe Mode]
    Useful links:
    [https://support.mozilla.com/en-US/kb/Options%20window All about Tools > Options]
    [http://kb.mozillazine.org/About:config Going beyond Tools > Options - about:config]
    [http://kb.mozillazine.org/About:config_entries about:config Entries]
    [https://support.mozilla.com/en-US/kb/Page%20Info%20window Page Info] Tools (Alt + T) > Page Info, Right-click > View Page Info
    [https://support.mozilla.com/en-US/kb/Keyboard%20shortcuts Keyboard Shortcuts]
    [https://support.mozilla.com/en-US/kb/Viewing%20video%20in%20Firefox%20without%20a%20plugin Viewing Video without Plugins]
    [http://kb.mozillazine.org/Profile_folder_-_Firefox Firefox Profile Folder & Files]
    [https://developer.mozilla.org/en/Command_Line_Options#Browser Firefox Commands]
    [https://support.mozilla.com/en-US/kb/Basic%20Troubleshooting Basic Troubleshooting]
    [https://support.mozilla.com/en-US/kb/common-questions-after-upgrading-firefox-36 After Upgrading]
    [https://support.mozilla.com/en-US/kb/Safe%20Mode Safe Mode]
    [http://kb.mozillazine.org/Problematic_extensions Problematic Extensions]
    [https://support.mozilla.com/en-US/kb/Troubleshooting%20extensions%20and%20themes Troubleshooting Extensions and Themes]
    [https://support.mozilla.com/en-US/kb/Troubleshooting%20plugins Troubleshooting Plugins]
    [http://kb.mozillazine.org/Testing_plugins Testing Plugins]

  • Photoshop: Making a text box with color or border.

    How do you fill a text box in Photoshop?
    Answer: You CAN’T.
    Solution:  You CAN do anything you want in Photoshop -we know it’s GREAT - but the steps are not always so easy.  See below for solutions to making it seem that the text box is filled with color, bordered, semi-tansparent etc.
    In Photoshop, a text box is mostly about the text inside and less about the box that surrounds it.  In other words, the box is always transparent and all effects apply to the font shapes typed inside by the user.  Photoshop (CS4) can produce incredible, professional, amazing text images. No Doubt About It!
    A Photoshop text box can display one of two types of bounding boxes: 
    Its OBJECT bounding box is there for moving the whole text layer, rotating it, duplicating it and distorting.  Clicking once on the text layer pallet and selecting the move tool (v) will produce this bounding box.  The direct selection tool (a) won’t recognize it.  Note:  If you try to resize the box as an object, it also distorts/stretches the text inside.  This can make cool effects but usually you want the text to stay the way the font was designed.  See: Layers>Type>Warp Text.
    The TEXT bounding box is there for highlighting, re-typing and selecting the margins of the actual text/paragraph etc.  Selecting the text tool and clicking over existing text will produce this bounding box.
    Some features are accessible in either mode.
    The Photoshop text tool has two types of cursors:
    The NEW text box cursor looks like a text insertion cursor (often seen in word processing) WITH a dotted box around it.
    To produce the new text box cursor just select the text tool and move over to a new work area.
    The EDIT text cursor looks very much like the ordinary cursor people are familiar with (no dotted box). 
    To produce the edit text tool, hover the text tool over EXISTING text and the cursor changes to the simple insertion shape (without the dotted box).  A click now will put you into text editing mode, not new text box mode.  This drove me batty for a while because I was used to clicking anywhere inside an existing text box and the blinking cursor would pop in automatically - usually at the end of the last letter.  This doesn’t happen in Photoshop; if that NEW text box tool is active, it will try to place a new box anywhere you click sometimes overlapping another.
    When in this mode (edit existing text) you can carefully hover the arrow to the edges of the text box and resize the bounding box without altering the shape of the text itself.  This is how you make the text box larger or smaller to fit/accommodate your needs.  You can also highlight text, insert between words/letters.  Highlighted text is available for changing its font, color, size, cutting/pasting etc. 
    To get OUT of the EDIT text mode, click the check box on the tool column above or type enter (not return) or type cmd-return (MAC), ctrl-return (WIN).  If you want to cancel any changes to an existing text box click the ex-circle on the tool column or press the esc key (top left of keyboard-escape key)
    OK, THE MAIN POINT:
    To make an effect that looks like a text box that is filled, bordered, semi-transparent etc., you will have to create an object shape (box) and place it just behind (under) the text box.  Linking the two allows you to move them around easily.  The drawback is that, when you need a larger box, you’ll have to alter the size of both boxes and possibly re-center them to each other (I know it’s sort of dumb to have so many steps just to get a shaded text box or bordered one.)
    Begin by selecting the Rectangle shape tool and draw a shape on the screen of any size.  In the layers pallet a layer is created with two items (layer thumbnail and vector mask) Double click the one on the left the layer thumbnail).  Change its color to a light one such as baby blue or yellow.
    Now select the text tool and click once over that shape.  A text box is created exactly the same size of the rectangle (any shape will work too).
    Type some text into that box and change the font type, size and color to something you might use regularly.  Check to see that the text color is black (can be changed later).  The text automatically wraps around when you reach the edge of this box and fits well (inside margins can be altered by pixel later).
    Now link the two boxes to one another.  Shift-click each layer in the layers pallet to select both and choose the link button at the bottom of the window for layers or go to Layers>Link Layers.  Now when you move one it will move the other too!
    Using the paragraph tools you can center text, indent first line, and add space between paragraphs.  Except the first paragraph seems too close to the top of the colored rectangle; doesn’t it?  Photoshop won’t add extra leading (horizontal space) between the text box and the top of the first paragraph.
    There are two ways to fix this:
    1.     Select the text tool and click inside the existing text then hover the pointer just above the little box/tab in the top center of that rectangle and bring it down just a bit.
    2.     Or you could unlink the two layers (to unlink just click link again while one of the two layers is selected in pallet) and move the colored rectangle up just a bit.
    In the first instance it was not necessary to unlink the boxes.  This is the advantage because altering the colored rectangle without unlinking will distort your text as will altering the text box if you are not in object text mode (see intro.)
    Ok, some advantages:
    Now that you have this set up you can use the background box (colored rectangle) to make other effects.  Select it as a separate layer but you won’t have to unlink it.  To make the box semi-transparent change either the layer OPACITY or the layer FILL (found in the layer pallet).
    To create a border box:
    1.     Select the colored rectangle box and under Layers>Styles>Blending Options (or just double click in an open area of the layer pallet for that shape.)
    2.     Select Stroke, change:  Fill Type color, Color black, Size 4, Position inside, Blend Mode normal, Opacity 100%. Click OK/Apply
    3.     Back in the layer pallet, change the Fill to 0% and you will just have a border with attached text box.  You may have to alter the inside text box again depending on the thickness of that border especially if you made the Position to be inside to keep the sharpness of the rectangle.
    4.     Yes this will work with other shapes and even custom shapes.  Remember to draw the shape first and immediately place a new text box over it BEFORE any other alteration is done.  This ensures that Photoshop creates a text box exactly the same size/dimension of your chosen shape.  It even makes margins fit irregular shapes like triangles.
    5.     Try it!

    Toxic Cumquat wrote:
    How do you fill a text box in Photoshop?
    Answer: You CAN’T.
    Solution:  You CAN do anything you want in Photoshop -we know it’s GREAT - but the steps are not always so easy.  See below for solutions to making it seem that the text box is filled with color, bordered, semi-tansparent etc.
    In Photoshop, a text box is mostly about the text inside and less about the box that surrounds it.  In other words, the box is always transparent and all effects apply to the font shapes typed inside by the user.  Photoshop (CS4) can produce incredible, professional, amazing text images. No Doubt About It!
    A Photoshop text box can display one of two types of bounding boxes: 
    Its OBJECT bounding box is there for moving the whole text layer, rotating it, duplicating it and distorting.  Clicking once on the text layer pallet and selecting the move tool (v) will produce this bounding box.  The direct selection tool (a) won’t recognize it.  Note:  If you try to resize the box as an object, it also distorts/stretches the text inside.  This can make cool effects but usually you want the text to stay the way the font was designed.  See: Layers>Type>Warp Text.
    The TEXT bounding box is there for highlighting, re-typing and selecting the margins of the actual text/paragraph etc.  Selecting the text tool and clicking over existing text will produce this bounding box.
    Some features are accessible in either mode.
    The Photoshop text tool has two types of cursors:
    The NEW text box cursor looks like a text insertion cursor (often seen in word processing) WITH a dotted box around it.
    To produce the new text box cursor just select the text tool and move over to a new work area.
    The EDIT text cursor looks very much like the ordinary cursor people are familiar with (no dotted box). 
    To produce the edit text tool, hover the text tool over EXISTING text and the cursor changes to the simple insertion shape (without the dotted box).  A click now will put you into text editing mode, not new text box mode.  This drove me batty for a while because I was used to clicking anywhere inside an existing text box and the blinking cursor would pop in automatically - usually at the end of the last letter.  This doesn’t happen in Photoshop; if that NEW text box tool is active, it will try to place a new box anywhere you click sometimes overlapping another.
    When in this mode (edit existing text) you can carefully hover the arrow to the edges of the text box and resize the bounding box without altering the shape of the text itself.  This is how you make the text box larger or smaller to fit/accommodate your needs.  You can also highlight text, insert between words/letters.  Highlighted text is available for changing its font, color, size, cutting/pasting etc. 
    To get OUT of the EDIT text mode, click the check box on the tool column above or type enter (not return) or type cmd-return (MAC), ctrl-return (WIN).  If you want to cancel any changes to an existing text box click the ex-circle on the tool column or press the esc key (top left of keyboard-escape key)
    OK, THE MAIN POINT:
    To make an effect that looks like a text box that is filled, bordered, semi-transparent etc., you will have to create an object shape (box) and place it just behind (under) the text box.  Linking the two allows you to move them around easily.  The drawback is that, when you need a larger box, you’ll have to alter the size of both boxes and possibly re-center them to each other (I know it’s sort of dumb to have so many steps just to get a shaded text box or bordered one.)
    Begin by selecting the Rectangle shape tool and draw a shape on the screen of any size.  In the layers pallet a layer is created with two items (layer thumbnail and vector mask) Double click the one on the left the layer thumbnail).  Change its color to a light one such as baby blue or yellow.
    Now select the text tool and click once over that shape.  A text box is created exactly the same size of the rectangle (any shape will work too).
    Type some text into that box and change the font type, size and color to something you might use regularly.  Check to see that the text color is black (can be changed later).  The text automatically wraps around when you reach the edge of this box and fits well (inside margins can be altered by pixel later).
    Now link the two boxes to one another.  Shift-click each layer in the layers pallet to select both and choose the link button at the bottom of the window for layers or go to Layers>Link Layers.  Now when you move one it will move the other too!
    Using the paragraph tools you can center text, indent first line, and add space between paragraphs.  Except the first paragraph seems too close to the top of the colored rectangle; doesn’t it?  Photoshop won’t add extra leading (horizontal space) between the text box and the top of the first paragraph.
    There are two ways to fix this:
    1.     Select the text tool and click inside the existing text then hover the pointer just above the little box/tab in the top center of that rectangle and bring it down just a bit.
    2.     Or you could unlink the two layers (to unlink just click link again while one of the two layers is selected in pallet) and move the colored rectangle up just a bit.
    In the first instance it was not necessary to unlink the boxes.  This is the advantage because altering the colored rectangle without unlinking will distort your text as will altering the text box if you are not in object text mode (see intro.)
    Ok, some advantages:
    Now that you have this set up you can use the background box (colored rectangle) to make other effects.  Select it as a separate layer but you won’t have to unlink it.  To make the box semi-transparent change either the layer OPACITY or the layer FILL (found in the layer pallet).
    To create a border box:
    1.     Select the colored rectangle box and under Layers>Styles>Blending Options (or just double click in an open area of the layer pallet for that shape.)
    2.     Select Stroke, change:  Fill Type color, Color black, Size 4, Position inside, Blend Mode normal, Opacity 100%. Click OK/Apply
    3.     Back in the layer pallet, change the Fill to 0% and you will just have a border with attached text box.  You may have to alter the inside text box again depending on the thickness of that border especially if you made the Position to be inside to keep the sharpness of the rectangle.
    4.     Yes this will work with other shapes and even custom shapes.  Remember to draw the shape first and immediately place a new text box over it BEFORE any other alteration is done.  This ensures that Photoshop creates a text box exactly the same size/dimension of your chosen shape.  It even makes margins fit irregular shapes like triangles.
    5.     Try it! Or try using Indesign!
    There. I fixed that for you.

  • An Image JPanel, A semi-transparent JPanel, and non-opaque components

    This is a more intelligent re-asking of the question I posed here: http://forum.java.sun.com/thread.jspa?threadID=579298&tstart=50.
    I have a class called ImagePane, which is basically a JPanel with an image background. The code is much like the ImagePanel posted by camickr, discussed in this topic: http://forum.java.sun.com/thread.jspa?forumID=57&threadID=316074 (except mine only draws the image, it does not tile or scale it).
    On top of my ImagePane, I can place another component, TransparentContainer. This again extends JPanel, only a color is specified in the constructor, and it is drawn at about 70% opacity. This component is meant to help increase the readability of text components that blend with the background image, without blocking out the background image completely.
    This works very well, until I need to add a component, like, say, a non-opaque JRadioButton in a ButtonGroup. When you select a new JRadioButton at runtime, the semi-transparent JPanel fills with a combination of a completely opaque color (the one specifies to the TransparentContainer) and garbage from the non-opaque component being redrawn.
    I have noticed that the UI is restored to being non-messed up if you place another application window on top of it and then move it. So apparently, one solution is to redraw the entire UI, or just the part that has the JRadioButton on it, every time the radio button is clicked. However, this seems unnecessarily complicated. It seems to me that I am missing something in my TransparentContainer's paintComponent() method. Does anyone have any ideas?
    Here is my TransparentContainer code, if it will help:
    import java.awt.AlphaComposite;
    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.RenderingHints;
    import javax.swing.JPanel;
    public final class TransparentContainer extends JPanel
         /* Private Fields: For use only by this class.
          *  These fields hold information needed by more
          *  than one method of this class.
         private boolean fullTransparencyEnabled;
         private Color baseColor;
         private Color outerBorderColor;
         private Color innerBorderColor;
         private int obw;
         private int ibw;
         private int cbw;
         /* -- START OF METHODS -- */
         /* public TransparentContainer(Color color, boolean fullTrans)
          *   Initiallizes the transparent container object
          *   with 'color' as its base color.
         public TransparentContainer(Color color, boolean fullTrans)
              fullTransparencyEnabled = fullTrans;
              baseColor = color;
              Color borders[] = findBorderColors();
              outerBorderColor = borders[0];
              innerBorderColor = borders[1];
              obw = 3;
              ibw = 1;
              cbw = obw + ibw;
         /* private Color[] findBorderColors(Color base)
          *   Calculates the colors for the outer and inner
          *   borders of the object based on the base color.
         private Color[] findBorderColors()
              Color borders[] = new Color[2];
              int colorData[] = new int[9];
              colorData[0] = getBaseColor().getRed();
              colorData[1] = getBaseColor().getGreen();
              colorData[2] = getBaseColor().getBlue();
              colorData[3] = colorData[0] - 50;          // outerBorder red
              colorData[4] = colorData[1] - 45;          // outerBorder green
              colorData[5] = colorData[2] - 35;          // outerBorder blue
              colorData[6] = colorData[0] + 30;          // innerBorder red
              colorData[7] = colorData[1] + 30;          // innerBorder green
              colorData[8] = colorData[2] + 20;          // innerBorder blue
              /* Make sure the new color data is not out of bounds: */
              for (int i = 3; i < colorData.length; i++)
                   if (colorData[i] > 255)
                        colorData[i] = 255;
                   else if (colorData[i] < 0)
                        colorData[i] = 0;
              borders[0] = new Color(colorData[3], colorData[4], colorData[5]);
              borders[1] = new Color(colorData[6], colorData[7], colorData[8]);
              return borders;
         /* public Color getBaseColor()
          *   Returns the baseColor of this object.
         public Color getBaseColor()
              return baseColor;
         /* public Color getOuterColor()
          *   Returns the outerBorderColor of this object.
         public Color getOuterColor()
              return outerBorderColor;
         /* public Color getInnerColor()
          *   Returns the innerBorderColor of this object.
         public Color getInnerColor()
              return innerBorderColor;
         /* public boolean getFullTransEnabled()
          *   Returns whether or not this object will render
          *   with all of its transparency effects.
         public boolean getFullTransEnabled()
              return fullTransparencyEnabled;
         /* protected void paintComponent(Graphics g)
          *   Paints the component with the borders and colors
          *   that were set up in above methods.
         protected void paintComponent(Graphics g)
              Graphics2D g2d = (Graphics2D) g;
              AlphaComposite alphaComp;
              g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
              g2d.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);
              g2d.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION,
                                            RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY);
              g2d.setColor(getBaseColor());
              /* Draw the main body of the component */
              if (getFullTransEnabled())
                   alphaComp = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f);
                   g2d.setComposite(alphaComp);
              else
                   alphaComp = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1.0f);
                   g2d.setComposite(alphaComp);
              g2d.fillRect(cbw, cbw, super.getWidth() - 2 * cbw, super.getHeight() - 2 * cbw);
              alphaComp = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f);
              g2d.setComposite(alphaComp);
              /* Draw the inner border: */
              g2d.setColor(getInnerColor());
              g2d.fillRect(obw, obw, ibw, super.getHeight() - obw * 2); // left border
              g2d.fillRect(obw, obw, super.getWidth() - obw, ibw); // top border
              g2d.fillRect(super.getWidth() - cbw, obw, ibw, super.getHeight() - obw * 2); // right border
              g2d.fillRect(obw, super.getHeight() - cbw, super.getWidth() - obw * 2, ibw); // bottom border
              /* Draw the outer border: */
              g2d.setColor(getOuterColor());
              g2d.fillRect(0, 0, obw, super.getHeight()); // left border
              g2d.fillRect(0, 0, super.getWidth() + obw, obw); // top border
              g2d.fillRect(super.getWidth() - obw, 0, obw, super.getHeight()); // right border
              g2d.fillRect(0, super.getHeight() - obw, super.getWidth(), obw); // bottom border
              alphaComp = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1.0f);
              g2d.setComposite(alphaComp);
              g2d.dispose();
    }

    I added the main method to your TransparentContainer class ...
         public static void main(String[] args) {
              JFrame f = new JFrame("test transparent container");
              f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              TransparentContainer tc = new TransparentContainer(Color.RED, true);
              JLabel label = new JLabel("Hello, World!");
              tc.add(label);
              f.getContentPane().add(tc);
              f.setSize(800, 600);
              f.setVisible(true);
         }...using the code you posted the label was not shown. I modified your paintComponent(Graphics g) method and I did this (see the areas in bold):
         /* protected void paintComponent(Graphics g)
          *   Paints the component with the borders and colors
          *   that were set up in above methods.
         protected void paintComponent(Graphics g)
              // Call super so components added to this panel are visible
              super.paintComponent(g);
              Graphics2D g2d = (Graphics2D) g;
              AlphaComposite alphaComp;
              g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
              g2d.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);
              g2d.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION,
                                            RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY);
              g2d.setColor(getBaseColor());
              /* Draw the main body of the component */
              if (getFullTransEnabled())
                   alphaComp = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f);
                   g2d.setComposite(alphaComp);
              else
                   alphaComp = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1.0f);
                   g2d.setComposite(alphaComp);
              g2d.fillRect(cbw, cbw, super.getWidth() - 2 * cbw, super.getHeight() - 2 * cbw);
              alphaComp = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f);
              g2d.setComposite(alphaComp);
              /* Draw the inner border: */
              g2d.setColor(getInnerColor());
              g2d.fillRect(obw, obw, ibw, super.getHeight() - obw * 2); // left border
              g2d.fillRect(obw, obw, super.getWidth() - obw, ibw); // top border
              g2d.fillRect(super.getWidth() - cbw, obw, ibw, super.getHeight() - obw * 2); // right border
              g2d.fillRect(obw, super.getHeight() - cbw, super.getWidth() - obw * 2, ibw); // bottom border
              /* Draw the outer border: */
              g2d.setColor(getOuterColor());
              g2d.fillRect(0, 0, obw, super.getHeight()); // left border
              g2d.fillRect(0, 0, super.getWidth() + obw, obw); // top border
              g2d.fillRect(super.getWidth() - obw, 0, obw, super.getHeight()); // right border
              g2d.fillRect(0, super.getHeight() - obw, super.getWidth(), obw); // bottom border
              alphaComp = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1.0f);
              g2d.setComposite(alphaComp);
              // Do not dispose the graphics
              // g2d.dispose();          
         }...seems to work fine now. Perhaps you should also add methods or additional constructors so the user can easily change the transparency level...and add some javadoc comments to your constructors ...at a first glance I did not know what fullTrans was
    public TransparentContainer(Color color, boolean fullTrans)good luck!!

  • Task flow-call  as a Dialog with inline-popup issue JDev 11.1.1.2.0

    I have a very serious issue with task flow-call running as a Dialog with inline-popup
    have bunch of data driven table components pointing to pageDefs with Iterators
    the problem is, the dialog comes first with nothing in it (blank) and it takes 3-5 seconds to fetch all views,
    this is useless, there is no option to control taskflow-call activation , like you do for af:region
    For reference : I am talking about this : http://jobinesh.blogspot.com/2010/08/refresh-parent-view-when-in-line-popup.html
    Download the workspace , connect as HR Schema and you will see what I am talking about
    looks really dumb, it would make sense to show dialog with data all at once, rarther than looking at blank screen to wait for the data to show up
    Edited by: user626222 on Sep 20, 2010 8:57 AM
    can I call this a bug?
    Edited by: user626222 on Sep 20, 2010 1:58 PM
    sometimes I wonder if anyone tested this, as soon as you have some data driven components on your page, you get all sorts of problems in ADF
    But something simple, Adf client side invokes the Dialog as a popup first, and then it thinks oh ya I get massive pageDef to load, so end-user customer will stare at the blank screen for 10 secs , hoping that something will come up or program is crashed
    Well, I am afraid to say you lost your customer :(
    Edited by: user626222 on Sep 20, 2010 2:29 PM
    Edited by: user626222 on Sep 20, 2010 2:35 PM
    Edited by: user626222 on Sep 20, 2010 2:35 PM
    Edited by: user626222 on Sep 20, 2010 2:36 PM

    ok, knowing this fact, I want to show some kind of status indicator during the wait time.
    Unfortunately, putting af:statusIndicator does not work untill after entire page loads
    <?xml version="1.0" ?>
    <?Adf-Rich-Response-Type ?>
    <content action="/EmpApp/faces/displayEmployees.jspx?_adf.ctrl-state=5plp6ahes_72">
    <fragment><![CDATA[<span id="f1::postscript"><input type="hidden" name="javax.faces.ViewState" value="!-e8tyzkiuc"></span>]]>
    </fragment>
    <fragment>
    <![CDATA[<div id="afr::DlgSrvPopupCtnr::content" style="display:none"><div id="j_id12" style="display:none">
    <div style="top:auto;right:auto;left:auto;bottom:auto;width:auto;height:auto;position:relative;" id="j_id12::content">
    <div id="j_id13" class="x142"><div class="x157" _afrPanelWindowBackground="1"></div>
    <div class="x157" _afrPanelWindowBackground="1"></div><div class="x157" _afrPanelWindowBackground="1">
    </div><div class="x157" _afrPanelWindowBackground="1"></div>
    <table cellpadding="0" cellspacing="0" border="0" summary="" class="x146">
    <tr>
    <td class="p_AFResizable x148" id="j_id13::_hse"> </td>
    <td class="p_AFResizable x14a" id="j_id13::_hce"><table cellpadding="0" cellspacing="0" border="0" width="100%" summary=""><tr>
    <td><div id="j_id13::_ticn" class="x151"><img src="/EmpApp/afr/task_flow_definition.png" alt=""></div></td><td class="x14e" id="j_id13::tb">
    <div id="j_id13::_ttxt" class="xz8"></div></td><td>
    <div class="x153"><a href="#" onclick="return false" class="xz7" id="j_id13::close" title="Close"></a></div></td></tr></table></td><td class="p_AFResizable x14c" id="j_id13::_hee"> </td></tr><tr><td class="p_AFResizable x14j" id="j_id13::_cse"> </td>
    <td class="p_AFResizable x14g" id="j_id13::contentContainer">
    <div id="j_id13::_ccntr" class="x14h" style="width:700px;height:430px;position:relative;overflow:hidden;">
    <div id="j_id14" class="xne" style="position:absolute;width:auto;height:auto;top:0px;left:0px;bottom:0px;right:0px">
    <iframe _src="javascript:'<html&gt;<head&gt;<title/&gt;</head&gt;
    <body/&gt;
    </html&gt;'" src="javascript:''" frameborder="0" style="position:absolute;width:100%;height:100%">
    </iframe>
    </div></div></td><td class="p_AFResizable x14l" id="j_id13::_cee"> </td></tr><tr><td class="p_AFResizable x14n" id="j_id13::_fse"><div></div></td>
    <td class="p_AFResizable x14p" id="j_id13::_fce">
    <table cellpadding="0" cellspacing="0" border="0" width="100%" summary=""><tr>
    <td class="p_AFResizable x14u" id="j_id13::_fcc"></td><td align="left" valign="bottom"><div class="p_AFResizable x14y"><a tabIndex="-1" class="x14w" id="j_id13::_ree" title="Resize"></a></div></td></tr></table></td><td class="p_AFResizable x14r" id="j_id13::_fee">
    <div></div></td>
    </tr></table></div></div></div></div>]]>
    </fragment>
    <script-library>/EmpApp/afr/partition/gecko/default/opt/frame-SHEPHERD-PS1-9296.js</script-library>
    This is how it launches the taskflow-call, so there is no way to control this behaviour from the calling taskflow's jspx, feels very closed system,why ADF is not making this behavior Open by some kind of client listener,
    <script>
    <![CDATA[AdfDhtmlLookAndFeel.addSkinProperties({"AFPopupSelectorFooterStart":"x11b","AFPopupSelectorHeader":"x114","af|panelWindow-tr-open-animation-duration":"300","AFPopupSelectorHeaderStart":"x115","AFPopupSelectorContentEnd":"x119","AFPopupSelectorContent":"x117","af|panelWindow::resize-ghost":"x144","AFPopupSelectorContentStart":"x118","AFPopupSelectorFooter":"x11a","AFPopupSelectorFooterEnd":"x11c","AFPopupSelectorHeaderEnd":"x116","AFPopupSelector":"x110",".AFPopupSelector-tr-open-animation-duration":"200"});AdfPage.PAGE.addComponents(new AdfRichPopup('j_id12',{'_dialogURL':'/EmpApp/faces/adf.dialog-request?_adf.ctrl-state=5plp6ahes_76&_rtrnId=1285074907739&__ADFvDlg__=true','_inlineFrameId':'j_id14','_launchId':'r1:0:cb2','_panelWindowId':'j_id13','_rtnId':'1285074907739','contentDelivery':'immediate'}),new AdfRichPanelWindow('j_id13',{'modal':true,'resize':'on','stretchChildren':'first'}),new AdfRichInlineFrame('j_id14',{'source':'javascript:\'\x3chtml>\x3chead>\x3ctitle/>\x3c/head>\x3cbody/>\x3c/html>\''}));AdfPage.PAGE.clearMessages();AdfPage.PAGE.clearSubtreeMessages('r1');]]>
    </script>
    AdfDhtmlRichDialogService.getInstance().launchInline there is no way for me to put af:statusindicator for the wait time using this way
    <script>AdfDhtmlRichDialogService.getInstance().launchInline('j_id12');*</script>
    </content>

Maybe you are looking for