本例:
WM_NCHITTEST 訊息返回後, 訊息的 Result 參數表示了滑鼠所在視窗的部位.
表單設計步驟: 建立工程後, 隨便添加一個菜單; 設定表單的 AutoScroll 屬性為 True, 並添加一個 Panel 放在合適的位置, 以讓視窗出現捲軸.
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Menus;type TForm1 = class(TForm) Panel1: TPanel; MainMenu1: TMainMenu; mnuFile: TMenuItem; private procedure MyMsg(var msg: TWMNCHitTest); message WM_NCHITTEST; end;var Form1: TForm1;implementation{$R *.dfm}const arr: array[-2..21] of string = ( 'HTERROR', 'HTTRANSPARENT', 'HTNOWHERE', 'HTCLIENT - 客戶區', 'HTCAPTION - 標題', 'HTSYSMENU - 系統功能表', 'HTGROWBOX', 'HTMENU - 菜單', 'HTHSCROLL - 水平捲軸', 'HTVSCROLL - 垂直捲軸', 'HTMINBUTTON - 最小化按鈕', 'HTMAXBUTTON - 最大化按鈕', 'HTLEFT - 左邊界', 'HTRIG - 右邊界', 'HTTOP - 上邊界', 'HTTOPLEFT - 左上方', 'HTTOPRIG - 右上方', 'HTBOTTOM - 下邊界', 'HTBOTTOMLEFT - 左下角', 'HTBOTTOMRIG - 右下角', 'HTBORDER', 'HTOBJECT', 'HTCLOSE - 關閉按鈕', 'HTHELP');procedure TForm1.MyMsg(var msg: TWMNCHitTest);var i: Integer;begin Inherited; i := msg.Result; Text := Format('%d: %s', [i, arr[i]]);end;end.//另附 WM_NCHITTEST 訊息中 Result 參數的所有可能值的列表:HTERROR = -2;HTTRANSPARENT = -1;HTNOWHERE = 0;HTCLIENT = 1;HTCAPTION = 2;HTSYSMENU = 3;HTGROWBOX = 4;HTSIZE = HTGROWBOX;HTMENU = 5;HTHSCROLL = 6;HTVSCROLL = 7;HTMINBUTTON = 8;HTMAXBUTTON = 9;HTLEFT = 10;HTRIGHT = 11;HTTOP = 12;HTTOPLEFT = 13;HTTOPRIGHT = 14;HTBOTTOM = 15;HTBOTTOMLEFT = $10;HTBOTTOMRIGHT = 17;HTBORDER = 18;HTREDUCE = HTMINBUTTON;HTZOOM = HTMAXBUTTON;HTSIZEFIRST = HTLEFT;HTSIZELAST = HTBOTTOMRIGHT;HTOBJECT = 19;HTCLOSE = 20;HTHELP = 21;