Solved

How to add items to title bar menu

Posted on 2004-08-27
5
832 Views
Last Modified: 2008-03-10
Hello.

How do I add  items to the popup menu that appears when you click on an application title bar. (The menu that has Minimize, Maximize, Close etc).

Thanks. js
0
Comment
Question by:jeremiahscott
  • 2
  • 2
5 Comments
 
LVL 2

Expert Comment

by:sonicblis
ID: 11914303
I assume you're speaking of a windows form, like adding "always on top"?
0
 

Author Comment

by:jeremiahscott
ID: 11914560
Yes, I have a windows form.

I probably didn't explain this well. If you click on Internet Explorers title bar you will see a popup menu. The items are [Restore, Move...Close]. If you do the same thing on a windows command prompt window they have added 3 more items [Edit, Defaults, Properties]. I want to mimic that.

thx
0
 
LVL 19

Accepted Solution

by:
Desp earned 100 total points
ID: 11919539
[DllImport("user32.dll")]
private static extern IntPtr GetSystemMenu(IntPtr hWnd, bool bRevert);

[DllImport("user32.dll")]
private static extern bool AppendMenu (IntPtr hMenu, Int32 wFlags, Int32
wIDNewItem, string lpNewItem);

public const Int32 WM_SYSCOMMAND = 0x112;
public const Int32 MF_SEPARATOR = 0x800;
public const Int32 MF_STRING = 0x0;
public const Int32 IDM_ABOUT  = 1000;

private void Form1_Load(object sender, System.EventArgs e)
{
IntPtr sysMenuHandle = GetSystemMenu(this.Handle, false);
AppendMenu(sysMenuHandle, MF_SEPARATOR, 0, string.Empty);
AppendMenu(sysMenuHandle, MF_STRING, IDM_ABOUT, "About...");
}

protected override void WndProc(ref Message m)
{
if(m.Msg == WM_SYSCOMMAND)
 switch(m.WParam.ToInt32())
 {
  case IDM_ABOUT :
    MessageBox.Show("This is About dialog");
   return;
  default:
   break;
 } base.WndProc(ref m);
}
0
 

Author Comment

by:jeremiahscott
ID: 11922857
I got it working. Thanks. I couldn't figure out what that menu was called. "System Menu"
0
 
LVL 19

Expert Comment

by:Desp
ID: 11924580
User menu are the menus designed and developed by the programmer himself(like Mainmenu and ContextMenu control). SystemMenu is something common functaionality provided by the Operating system.
0

Featured Post

Free Tool: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Article by: Najam
Having new technologies does not mean they will completely replace old components.  Recently I had to create WCF that will be called by VB6 component.  Here I will describe what steps one should follow while doing so, please feel free to post any qu…
Introduction Hi all and welcome to my first article on Experts Exchange. A while ago, someone asked me if i could do some tutorials on object oriented programming. I decided to do them on C#. Now you may ask me, why's that? Well, one of the re…
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundr…
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…

713 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question