用Perform(WM_SysCommand,$F012,0)拖動窗體時有虛框出現﹐如何使他沒有虛框﹖(30分)

  • 主题发起人 主题发起人 dadabox
  • 开始时间 开始时间
D

dadabox

Unregistered / Unconfirmed
GUEST, unregistred user!
我們知道﹐用
RealeaseCapture;
Perform(WM_SysCommand,$F012,0);
可以隨處拖動窗體﹐但我的窗體是不規則的﹐用這種方法拖動的時候會出現一個方形的虛框
實在不好看﹐哪位能告訴我如何解決﹖
 
自己画,别无它法
 
樓上的﹐不要那么無聊好不好﹖
 
靠,不规则窗体拖动时你只能自己画拖动时的形状,俺做过的。
 
这个不如果想实现你的要求,好象难了一点我做的也像你一样。
 
樓上的﹐你做過就告訴我怎樣做﹐不然我怎知道﹖
 
看看 我是帅哥 回复的帖子。
你就知道他是不是真的做过,并且能做到!
 
我看答的全是些灌水貼﹐唉...
影子﹐知不知道怎么做﹖
 
SORRY。
我不知道,但我可以试试。
如果到明天都没有回复的话,说明我做不出来。
 
嗯。
就算通过标题栏移动,也不能除去虚框。
帮不到忙。
sorry
 
我觉得不可以把?

mediaplayer 拖的时候 也是方框
 
不如不用这个命令,
使用 ONMouseDOWN, ONMouseMove, ONMouseUP 等事件自已移动窗体位置
 
先执行一下这个
SystemParametersInfo(SPI_SETDRAGFULLWINDOWS,1,nil,SPIF_UPDATEINIFILE);
就可以了。
 
你这个更改了整个系统的设置,其他的程序都跟着改变了,不好。[:(]
 
多谢billxu,这个问题圆满解决.但你能否解释一下原理呢?我再挂两天,如果到时没回答,
我就结束了.

to yzhshi,你调用完了,再照下面这样就又恢复了.不会有问题的.
SystemParametersInfo(SPI_SETDRAGFULLWINDOWS,0,nil,SPIF_UPDATEINIFILE);
 
但是除你在那里添加?
OnCreate,OnMove(当然没有之类的)?
你程序运行的时候呢?别的程序如何处理?
 
其实那个就是改变系统的参数,以前98下面就是能够拖出虚框,而NT里面就是没有。
呵呵。[:)]
 
to yzhshi,你照下面来,看会不会影响别的程序?我知道是改变了系统参数,但是想知道多一
些?哪位有比较详细的帮助说明,集中在一块的.我可以花分购买.
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
; Y: Integer);
begin
; ReleaseCapture;
; SystemParametersInfo(SPI_SETDRAGFULLWINDOWS,1,nil,SPIF_UPDATEINIFILE);
; Perform(WM_SysCommand,$F012,0);
; SystemParametersInfo(SPI_SETDRAGFULLWINDOWS,0,nil,SPIF_UPDATEINIFILE);
end;
 
OK!
这样做没问题。
至于多一些参数,我可以给你找一找,不用Money的,我直接贴到这里就可以了。
OK!稍等……
 
只找到了几个,以前我记得有很多的。[:)]
下面的过程可以使系统键生效或失效:
type
TKeyState = ( kbOn, kbOff );

procedure SetSystemKey( value : TKeyState );
var
NoUse : integer;
begin
case value of
kbOn : SystemParametersInfo( SPI_SCREENSAVERRUNNING, 0, @NoUse, 0);
kbOff : SystemParametersInfo( SPI_SCREENSAVERRUNNING, 1, @NoUse, 0);
end;
end;

用API改变键盘速度
systemParametersInfo(SPI_SETKEYBOARDSPEED,16,Nil,SPIF_UPDATEINIFILE)
16为设置的速度,它的取值范围为0-31
pvpram设为nil就行;
fwinini有三个值
SPIF_UPDATEINIFILE Writes the new system-wide parameter setting to the user profile.
SPIF_SENDCHANGE Broadcasts the WM_SETTINGCHANGE message after updating the user profile.
SPIF_SENDWININICHANGE Same as SPIF_SENDCHANGE.

刷新Windows的桌面
SystemParametersInfo(SPI_SETDESKWALLPAPER,0,nil,SPIF_SENDWININICHANGE)
 
后退
顶部