Sometimes you want to create a fancy looking form from a bitmap, like WinAMP or K-J?fol. This part isn’t too hard. All you have to do is make a cool graphic, use the TImage component and set the form’s border style to bsNone. Well, all’s good until we want to move the form… Since there is no title bar there may be a problem with this:) Well, as you should already know Delphi can get over any problem. All we have to do is manually take care of the WM_NCHITTEST Windows message.
In this example a TImage component named imgTitle will act like the form’s title bar.
uses
Messages;
...
public
procedure WMNCHitTest(var Message: TWMNCHitTest); message WM_NCHITTEST;
end;
...
procedure TForm1.WMNCHitTest(var Message: TWMNCHitTest);
var
P: TPoint;
begin
inherited;
P := ScreenToClient(SmallPointToPoint(Message.Pos));
with imgTitle do
if (P.X >= Left) and (P.X < Left + Width) and (P.Y >= Top) and (P.Y < Top + Height) then
Message.Result := htCaption;
end;
Tags: api, behave, bitmap, border style, caption, code, Delphi, form, lt, manually, move, open source, position, screen, source, source code, tip, title bar, trick, winamp, window, windows, wm
Merlin’s Delphi Forge
Leave a comment