更改窗口外观时遇到问题。出于某种原因,我无法拖动无边框窗口。我可以拖动窗户,但我不能抓住角落,使窗户的大小更大。这是一个截图应用程序。
procedure TFrmCapture.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
const
SC_DRAGMOVE = $F012;
begin
if Button = mbLeft then
begin
ReleaseCapture;
Perform(WM_SYSCOMMAND, SC_DRAGMOVE, 0);
end;
end;
procedure TfrmCapture.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_DOWN then
self.Top := self.Top + 1;
if Key = VK_UP then
self.Top := self.Top - 1;
if key = VK_LEFT then
self.Left := self.Left - 1;
if key = VK_RIGHT then
self.Left := self.Left + 1;
end;
procedure TfrmCapture.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if MouseIsDown then
begin
ReleaseCapture;
Self.Perform(WM_NCLBUTTONDOWN, HTCAPTION, 0);
end;
end;
procedure TfrmCapture.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
MouseIsDown := False;
end;
procedure TfrmCapture.mnuCaptureClick(Sender: TObject);
begin
//Set button press
ButtonPress := 1;
//Get window rect.
GetWindowRect(Handle, WindowInfo.wRect);
//Set left and top form pos.
WindowInfo.X := Left;
WindowInfo.Y := Top;
//Close form.
Close;
end;
procedure TfrmCapture.mnuCloseClick(Sender: TObject);
begin
ButtonPress := 0;
Close;
end;