using MessageBox MessageBoxIcon.Exclamation

  • Thread starter Dennis C. Drumm
  • Start date
D

Dennis C. Drumm

I have ordered the book .NET Framework Solutions, In Search of the Lost
Win32
API by John Paul Meuller which I think will help answer some of my questions
I have regarding making custom MessageBoxes, but that isn't going to be here
for a few days. So, I thought I would ask you guys how to put one of hte
standard MessageBox icons, such as MessageBoxIcon.Exclamation, into my
custom MessageBox.

Thanks,

Dennis
 
R

Rob Windsor

Hi Dennis,

The MessageBox class that's built into the Framework supports that already.

MessageBox.Show("Hello, World", "My Message Box", MessageBoxButtons.OK,
MessageBoxIcon.Exclamation);
 
D

Dennis C. Drumm

Rob,

I'm creating a CUSTOM MessageBox that has some featues that the standard
one doesn't. Additional Buttons, for instance.

Dennis
 
J

Jeffrey Tan[MSFT]

Hi Dennis,

You can find this icon in the "C:\WINDOWS\system32\user32.dll".
As a small trick, you can view the icon in a dll or exe file through the
"change icon"
window of short cut file.

To get specified icon in a file, using ExtractAssociatedIconEx API.

Sample like this:(I set the form's icon to this icon)
try
{
IntPtr iconindex=(IntPtr)1 ;
IntPtr iconid;
IntPtr icon=ExtractAssociatedIconEx(this.Handle
,@"C:\WINDOWS\system32\user32.dll",ref (IntPtr)iconindex,out
(IntPtr)iconid);
this.Icon=Icon.FromHandle(icon);
}
catch(Exception ex)
{
MessageBox.Show(ex.Message );
}
Because this icon is the second icon in user32.dll, you should set the
index to 1.(start from 0)

Hope this helps you.

Best regards,
Jeffrey Tan
Microsoft Online Partner Support
Get Secure! - www.microsoft.com/security
This posting is provided "as is" with no warranties and confers no rights.

--------------------
| Reply-To: "Dennis C. Drumm" <[email protected]>
| From: "Dennis C. Drumm" <[email protected]>
| References: <[email protected]>
<[email protected]>
| Subject: Re: using MessageBox MessageBoxIcon.Exclamation
| Date: Fri, 5 Sep 2003 16:29:23 -0400
| Lines: 45
| X-Priority: 3
| X-MSMail-Priority: Normal
| X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
| Message-ID: <u0X8Bx#[email protected]>
| Newsgroups: microsoft.public.dotnet.languages.csharp
| NNTP-Posting-Host: ipn36372-d67485.net-resource.net 216.204.76.29
| Path: cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTNGP09.phx.gbl
| Xref: cpmsftngxa06.phx.gbl microsoft.public.dotnet.languages.csharp:182723
| X-Tomcat-NG: microsoft.public.dotnet.languages.csharp
|
| Rob,
|
| I'm creating a CUSTOM MessageBox that has some featues that the standard
| one doesn't. Additional Buttons, for instance.
|
| Dennis
|
|
| | > Hi Dennis,
| >
| > The MessageBox class that's built into the Framework supports that
| already.
| >
| > MessageBox.Show("Hello, World", "My Message Box", MessageBoxButtons.OK,
| > MessageBoxIcon.Exclamation);
| >
| > --
| > Rob Windsor
| > G6 Consulting
| > Toronto, Canada
| >
| >
| > | > > I have ordered the book .NET Framework Solutions, In Search of the
Lost
| > > Win32
| > > API by John Paul Meuller which I think will help answer some of my
| > questions
| > > I have regarding making custom MessageBoxes, but that isn't going to
be
| > here
| > > for a few days. So, I thought I would ask you guys how to put one of
hte
| > > standard MessageBox icons, such as MessageBoxIcon.Exclamation, into my
| > > custom MessageBox.
| > >
| > > Thanks,
| > >
| > > Dennis
| > >
| > >
| >
| >
|
|
|
 
D

Dennis C. Drumm

Thanks Jeffrey:

That is what I was looking for. I wonder why system sounds and icons weren't
made easier to access from .NET? That's pretty basic stuff for building user
interface stuff, don't you think?

Thanks,

Dennis
 
J

Jeffrey Tan[MSFT]

Hi Dennis,

I am glad what I provided helps you.
I think the system sound and icons are platform related, so you need use
windows API to retrieve it.
Also, the .net is focus on the web application and it is platform
unrelated, so
.net provided no class for getting these system information.

Hope this helps.
Best regards,
Jeffrey Tan
Microsoft Online Partner Support
Get Secure! - www.microsoft.com/security
This posting is provided "as is" with no warranties and confers no rights.

--------------------
| Reply-To: "Dennis C. Drumm" <[email protected]>
| From: "Dennis C. Drumm" <[email protected]>
| References: <[email protected]>
<[email protected]>
<u0X8Bx#[email protected]>
<[email protected]>
| Subject: Re: using MessageBox MessageBoxIcon.Exclamation
| Date: Mon, 8 Sep 2003 06:27:27 -0400
| Lines: 122
| X-Priority: 3
| X-MSMail-Priority: Normal
| X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
| Message-ID: <[email protected]>
| Newsgroups: microsoft.public.dotnet.languages.csharp
| NNTP-Posting-Host: ppp-com63.net-resource.com 216.204.2.63
| Path: cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTNGP11.phx.gbl
| Xref: cpmsftngxa06.phx.gbl microsoft.public.dotnet.languages.csharp:183145
| X-Tomcat-NG: microsoft.public.dotnet.languages.csharp
|
| Thanks Jeffrey:
|
| That is what I was looking for. I wonder why system sounds and icons
weren't
| made easier to access from .NET? That's pretty basic stuff for building
user
| interface stuff, don't you think?
|
| Thanks,
|
| Dennis
|
| | >
| > Hi Dennis,
| >
| > You can find this icon in the "C:\WINDOWS\system32\user32.dll".
| > As a small trick, you can view the icon in a dll or exe file through the
| > "change icon"
| > window of short cut file.
| >
| > To get specified icon in a file, using ExtractAssociatedIconEx API.
| >
| > Sample like this:(I set the form's icon to this icon)
| > try
| > {
| > IntPtr iconindex=(IntPtr)1 ;
| > IntPtr iconid;
| > IntPtr icon=ExtractAssociatedIconEx(this.Handle
| > ,@"C:\WINDOWS\system32\user32.dll",ref (IntPtr)iconindex,out
| > (IntPtr)iconid);
| > this.Icon=Icon.FromHandle(icon);
| > }
| > catch(Exception ex)
| > {
| > MessageBox.Show(ex.Message );
| > }
| > Because this icon is the second icon in user32.dll, you should set the
| > index to 1.(start from 0)
| >
| > Hope this helps you.
| >
| > Best regards,
| > Jeffrey Tan
| > Microsoft Online Partner Support
| > Get Secure! - www.microsoft.com/security
| > This posting is provided "as is" with no warranties and confers no
rights.
| >
| > --------------------
| > | Reply-To: "Dennis C. Drumm" <[email protected]>
| > | From: "Dennis C. Drumm" <[email protected]>
| > | References: <[email protected]>
| > <[email protected]>
| > | Subject: Re: using MessageBox MessageBoxIcon.Exclamation
| > | Date: Fri, 5 Sep 2003 16:29:23 -0400
| > | Lines: 45
| > | X-Priority: 3
| > | X-MSMail-Priority: Normal
| > | X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
| > | X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
| > | Message-ID: <u0X8Bx#[email protected]>
| > | Newsgroups: microsoft.public.dotnet.languages.csharp
| > | NNTP-Posting-Host: ipn36372-d67485.net-resource.net 216.204.76.29
| > | Path: cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTNGP09.phx.gbl
| > | Xref: cpmsftngxa06.phx.gbl
| microsoft.public.dotnet.languages.csharp:182723
| > | X-Tomcat-NG: microsoft.public.dotnet.languages.csharp
| > |
| > | Rob,
| > |
| > | I'm creating a CUSTOM MessageBox that has some featues that the
| standard
| > | one doesn't. Additional Buttons, for instance.
| > |
| > | Dennis
| > |
| > |
| > | | > | > Hi Dennis,
| > | >
| > | > The MessageBox class that's built into the Framework supports that
| > | already.
| > | >
| > | > MessageBox.Show("Hello, World", "My Message Box",
| MessageBoxButtons.OK,
| > | > MessageBoxIcon.Exclamation);
| > | >
| > | > --
| > | > Rob Windsor
| > | > G6 Consulting
| > | > Toronto, Canada
| > | >
| > | >
| > | > | > | > > I have ordered the book .NET Framework Solutions, In Search of the
| > Lost
| > | > > Win32
| > | > > API by John Paul Meuller which I think will help answer some of my
| > | > questions
| > | > > I have regarding making custom MessageBoxes, but that isn't going
to
| > be
| > | > here
| > | > > for a few days. So, I thought I would ask you guys how to put one
of
| > hte
| > | > > standard MessageBox icons, such as MessageBoxIcon.Exclamation,
into
| my
| > | > > custom MessageBox.
| > | > >
| > | > > Thanks,
| > | > >
| > | > > Dennis
| > | > >
| > | > >
| > | >
| > | >
| > |
| > |
| > |
| >
|
|
|
 
D

Dennis C. Drumm

Jeffrey:

Here is a follow-up question for you. I was able to extract the icons from
the dll with one of the many icon editors available out there. Each of the
icon images in this dll has about 9 different formats for different sizes
and colors. If I don't edit the icon and delete all but the image I need,
VS.net will always use the first (?) image type for that icon. In this
instance a 16/16 bit icon. And the properties for that icon in the image
properties pane of VS.net is grayed out so I can't change it. How does
VS.net decide which format of the image it will use and how can I
programmatically change it besides deleting all the formats that I don't
want it to use?

Thanks,

Dennis
 
D

Dennis C. Drumm

Jeffrey:

..NET also support Windows Forms applications, which are not web based. I
think .NET supports a number of other platforms besides web applications.

Dennis
 
J

Jeffrey Tan[MSFT]

Hi Dennis,

I use VS.net resource editor to open the user32.dll and set the icon's
image type to
48X48 and export it as an .ico file.
But after I import this ico file into button's image property, I found that
the ico was displayed
in 16X16 type and just as you said its properties was black and readonly.
I used ACDSee to open the ico file and found that its still had 9 image
types associated with it.

I do not know how you deleted the other 8 image types.

As a workaround, I found that if you use ExtractAssociatedIconEx to load
the icon and convert it
into Icon class then you can adjust its size as you like.
Sample code like this:

FileStream fs=new FileStream(@"C:\ico101.ico",FileMode.Open );
fs.Position=0;
Icon newicon=new Icon(fs,48,48);
Button1.Image=(Image)newicon.ToBitmap();

I think the reason that at design time the image property only display
16X16 icon is that
the VS.net IDE default use Icon class's default constructor(16X16 size) to
load the icon.

Hope this helps
Best regards,
Jeffrey Tan
Microsoft Online Partner Support
Get Secure! - www.microsoft.com/security
This posting is provided "as is" with no warranties and confers no rights.

--------------------
| Reply-To: "Dennis C. Drumm" <[email protected]>
| From: "Dennis C. Drumm" <[email protected]>
| References: <[email protected]>
<[email protected]>
<u0X8Bx#[email protected]>
<[email protected]>
<[email protected]>
<[email protected]>
| Subject: Re: using MessageBox MessageBoxIcon.Exclamation
| Date: Mon, 8 Sep 2003 08:35:19 -0400
| Lines: 185
| X-Priority: 3
| X-MSMail-Priority: Normal
| X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
| Message-ID: <#[email protected]>
| Newsgroups: microsoft.public.dotnet.languages.csharp
| NNTP-Posting-Host: ppp-com63.net-resource.com 216.204.2.63
| Path: cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTNGP11.phx.gbl
| Xref: cpmsftngxa06.phx.gbl microsoft.public.dotnet.languages.csharp:183172
| X-Tomcat-NG: microsoft.public.dotnet.languages.csharp
|
| Jeffrey:
|
| .NET also support Windows Forms applications, which are not web based. I
| think .NET supports a number of other platforms besides web applications.
|
| Dennis
|
| | >
| > Hi Dennis,
| >
| > I am glad what I provided helps you.
| > I think the system sound and icons are platform related, so you need use
| > windows API to retrieve it.
| > Also, the .net is focus on the web application and it is platform
| > unrelated, so
| > net provided no class for getting these system information.
| >
| > Hope this helps.
| > Best regards,
| > Jeffrey Tan
| > Microsoft Online Partner Support
| > Get Secure! - www.microsoft.com/security
| > This posting is provided "as is" with no warranties and confers no
rights.
| >
| > --------------------
| > | Reply-To: "Dennis C. Drumm" <[email protected]>
| > | From: "Dennis C. Drumm" <[email protected]>
| > | References: <[email protected]>
| > <[email protected]>
| > <u0X8Bx#[email protected]>
| > <[email protected]>
| > | Subject: Re: using MessageBox MessageBoxIcon.Exclamation
| > | Date: Mon, 8 Sep 2003 06:27:27 -0400
| > | Lines: 122
| > | X-Priority: 3
| > | X-MSMail-Priority: Normal
| > | X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
| > | X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
| > | Message-ID: <[email protected]>
| > | Newsgroups: microsoft.public.dotnet.languages.csharp
| > | NNTP-Posting-Host: ppp-com63.net-resource.com 216.204.2.63
| > | Path: cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTNGP11.phx.gbl
| > | Xref: cpmsftngxa06.phx.gbl
| microsoft.public.dotnet.languages.csharp:183145
| > | X-Tomcat-NG: microsoft.public.dotnet.languages.csharp
| > |
| > | Thanks Jeffrey:
| > |
| > | That is what I was looking for. I wonder why system sounds and icons
| > weren't
| > | made easier to access from .NET? That's pretty basic stuff for
building
| > user
| > | interface stuff, don't you think?
| > |
| > | Thanks,
| > |
| > | Dennis
| > |
| > | | > | >
| > | > Hi Dennis,
| > | >
| > | > You can find this icon in the "C:\WINDOWS\system32\user32.dll".
| > | > As a small trick, you can view the icon in a dll or exe file through
| the
| > | > "change icon"
| > | > window of short cut file.
| > | >
| > | > To get specified icon in a file, using ExtractAssociatedIconEx API.
| > | >
| > | > Sample like this:(I set the form's icon to this icon)
| > | > try
| > | > {
| > | > IntPtr iconindex=(IntPtr)1 ;
| > | > IntPtr iconid;
| > | > IntPtr icon=ExtractAssociatedIconEx(this.Handle
| > | > ,@"C:\WINDOWS\system32\user32.dll",ref (IntPtr)iconindex,out
| > | > (IntPtr)iconid);
| > | > this.Icon=Icon.FromHandle(icon);
| > | > }
| > | > catch(Exception ex)
| > | > {
| > | > MessageBox.Show(ex.Message );
| > | > }
| > | > Because this icon is the second icon in user32.dll, you should set
the
| > | > index to 1.(start from 0)
| > | >
| > | > Hope this helps you.
| > | >
| > | > Best regards,
| > | > Jeffrey Tan
| > | > Microsoft Online Partner Support
| > | > Get Secure! - www.microsoft.com/security
| > | > This posting is provided "as is" with no warranties and confers no
| > rights.
| > | >
| > | > --------------------
| > | > | Reply-To: "Dennis C. Drumm" <[email protected]>
| > | > | From: "Dennis C. Drumm" <[email protected]>
| > | > | References: <[email protected]>
| > | > <[email protected]>
| > | > | Subject: Re: using MessageBox MessageBoxIcon.Exclamation
| > | > | Date: Fri, 5 Sep 2003 16:29:23 -0400
| > | > | Lines: 45
| > | > | X-Priority: 3
| > | > | X-MSMail-Priority: Normal
| > | > | X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
| > | > | X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
| > | > | Message-ID: <u0X8Bx#[email protected]>
| > | > | Newsgroups: microsoft.public.dotnet.languages.csharp
| > | > | NNTP-Posting-Host: ipn36372-d67485.net-resource.net 216.204.76.29
| > | > | Path:
cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTNGP09.phx.gbl
| > | > | Xref: cpmsftngxa06.phx.gbl
| > | microsoft.public.dotnet.languages.csharp:182723
| > | > | X-Tomcat-NG: microsoft.public.dotnet.languages.csharp
| > | > |
| > | > | Rob,
| > | > |
| > | > | I'm creating a CUSTOM MessageBox that has some featues that the
| > | standard
| > | > | one doesn't. Additional Buttons, for instance.
| > | > |
| > | > | Dennis
| > | > |
| > | > |
| > | > | | > | > | > Hi Dennis,
| > | > | >
| > | > | > The MessageBox class that's built into the Framework supports
that
| > | > | already.
| > | > | >
| > | > | > MessageBox.Show("Hello, World", "My Message Box",
| > | MessageBoxButtons.OK,
| > | > | > MessageBoxIcon.Exclamation);
| > | > | >
| > | > | > --
| > | > | > Rob Windsor
| > | > | > G6 Consulting
| > | > | > Toronto, Canada
| > | > | >
| > | > | >
| > | > | > | > | > | > > I have ordered the book .NET Framework Solutions, In Search of
| the
| > | > Lost
| > | > | > > Win32
| > | > | > > API by John Paul Meuller which I think will help answer some
of
| my
| > | > | > questions
| > | > | > > I have regarding making custom MessageBoxes, but that isn't
| going
| > to
| > | > be
| > | > | > here
| > | > | > > for a few days. So, I thought I would ask you guys how to put
| one
| > of
| > | > hte
| > | > | > > standard MessageBox icons, such as MessageBoxIcon.Exclamation,
| > into
| > | my
| > | > | > > custom MessageBox.
| > | > | > >
| > | > | > > Thanks,
| > | > | > >
| > | > | > > Dennis
| > | > | > >
| > | > | > >
| > | > | >
| > | > | >
| > | > |
| > | > |
| > | > |
| > | >
| > |
| > |
| > |
| >
|
|
|
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top