MARIA_MAR,
Cita:
Empezado por MARIA_MAR
¿cómo puedo yo redimensionar la ventana en la que se ejecuta este programa Windows sin llegar a minimizarla?
|
1- Con la función
SetForegroundWindow se puede establecer el tamaño, posición y orden Z de una ventana en Windows
Código:
BOOL SetWindowPos(
HWND hWnd, // handle of window
HWND hWndInsertAfter, // placement-order handle
int X, // horizontal position
int Y, // vertical position
int cx, // width
int cy, // height
UINT uFlags // window-positioning flags
);
2- Revisa el siguiente código en el cual se redimensiona la ventana de Notepad:
Código Delphi
[-]
procedure TForm5.Button1Click(Sender: TObject);
var
x, y : Integer;
cx, cy : Integer;
Window : Integer;
begin
x := Round(form4.Top/2);
y := Round(form4.Left/2);
cx := Round(form4.Height/2);
cy := Round(form4.Width/2);
ShellExecute(Handle, 'open', 'Notepad.exe', nil, nil, SW_HIDE);
Sleep(150);
Window := FindWindow('Notepad',nil);
if SetForegroundWindow(Window) = True then
begin
ShowWindow(Window, SW_SHOWNORMAL);
SetWindowPos(Window,HWND_TOPMOST, x, y, cx, cy, SWP_NOACTIVATE);
end
else
MessageDlg('Notepad No Esta Activo', mtInformation,[mbOk], 0);
end;
Nota: La ventana debe ser redimensionable, de lo contrario la función
SetWindowPos no podrá redimensionarla.
Espero sea útil
Nelson.