PDA

Ver la Versión Completa : Mostrar MenuSistema en barra de tareas


Khronos
11-09-2007, 12:06:39
Hola, me gustaria saber si hay alguna forma de mostrar el menu que aparece cuando pulsas el boton derecho sobre el nombre de tu aplicacion en la barra de tareas.
Estoy usando un form sin bordes y no consigo encontrar la forma. Uso delphi 2007.

http://img72.imageshack.us/my.php?image=phoenixhn8.jpg

Salu2

dec
11-09-2007, 12:29:18
Hola,

Basándome en código fuente encontrado Scalabium.com (http://www.scalabium.com/faq/dct0155.htm) aquí tienes un primer intento de función "ShowSystemMenu()":


function ShowSystemMenu(wHandle: hwnd;
posX, posY: integer): boolean;
var
flags: cardinal;
hMenuItem: DWORD;
hMenuHandle: HMENU;
begin
hMenuHandle := GetSystemMenu(wHandle, false);
flags := TPM_LEFTBUTTON or TPM_RIGHTBUTTON or TPM_RETURNCMD;
hMenuItem := LongWord(TrackPopupMenu(hMenuHandle,
flags, posX, posY, 0, wHandle, nil));
if (hMenuItem > 0) then
SendMessage(wHandle, WM_SYSCOMMAND, hMenuItem, 0);
result := (hMenuItem > 0);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
// Ejemplo de llamada a la función
ShowSystemMenu(self.Handle, self.Left,
self.Top+GetSystemMetrics(SM_CYCAPTION));
end;


Tú adáptalo como mejor te parezca.

Khronos
11-09-2007, 13:28:50
Gracias por tu interes dec, pero tu code no me funciono. No se si tiene algo que ver, pero en el evento oncreate recorto las esquinas del form.


procedure DibujarControl(Control: TWinControl);
var
R:TRect;
Rgn: HRGN;
begin
with Control do
begin
R:=ClientRect;
rgn:=CreateRoundRectRgn(R.Left, R.Top, R.Right, R.Bottom, 8, 10);
Perform(EM_GETRECT, 0, lParam(@r));
InflateRect(r, -4, -4);
Perform(EM_SETRECTNP, 0, lParam(@r));
SetWindowRgn(Handle, rgn, True);
Invalidate;
end;
end;



Salu2

dec
11-09-2007, 13:38:52
Hola,

Hay que ver qué quieres decir con "no funcionó". ¿No se muestra el menú? ¿Se muestra pero no donde tú quieres?

PD. Ojo, que yo no estoy muy puesto, y es posible que lo que dices que haces influya del alguna manera. Habrá que verlo.

Khronos
11-09-2007, 15:28:36
No se muestra ningun menu, solo quiero que se vea el menu que aparece al darle click con el boton derecho en el nombre de tu aplicacion situado en la barra de tareas.

Salu2 y gracias