桌面是什么?(200分)

  • 主题发起人 主题发起人 redsky.l
  • 开始时间 开始时间
R

redsky.l

Unregistered / Unconfirmed
GUEST, unregistred user!
; ;呵呵我是吃饱了撑得:一直在想桌面是什么?

; ; 我想应该也是属于Form吧。只是用Delphi如何可以实现它?也就是说:
如何使一个From有OnBottom的属性使它一直在所有运行程序的底端。当然
能在桌面之上!!
; ; 不知能否实现?
 
桌面不过是一个LISTVIEW,带有背景。
FORM要想在最下面也应该好办。setwindowpos,z-order啦什么的。
不过难于处理的是你要自己实现我的电脑等图标的处理。
那相当于自己编个SHELL。
 
;可能回答得不是很准。
; 这应该先弄清楚Windows的运行机制。我认为桌面不能算作Form;但它的确
在某些方面象Form。打个比方,桌面是一张纸,而Form只是上面画的画;各种
控件则是各种图形符号,表达不同的意思。
; 在Windows中,所有的东西都是靠Handle来查找和操纵的。桌面的Handle应
该是规定的吧(好象是0),其它的都应该受它控制;而Form的Handle却是动态
分配的。Windows通过列表查找需要的Form。
; 桌面应该是一个底层容器。这点与Form有些一样。但桌面上是不能放控件的。
平常所说的桌面上有什么有什么,仅仅是在桌面上某个功能区画了(放了)些
什么。要不然,Win98的Active桌面为什么要做成背景呢。
; 桌面不仅仅包括桌面背景,还有其他东西。
;
; 如果想实现你的想法,我想,可以先用一个背景,然后用钩子截获鼠标、键盘
再自行处理。
 
如果再WIN98或者2000里,或者是装了ACTIVE DESKTOP的NT4,有一个接口IActiveDesktop,系统提供,应该从那里可以找到你所希望的一切.
资料在MSDN里都有.
 
桌面是个VCL
 
there are many api functions about desktop such as
opendesktop, createdesktop and so on,
you can find them in windows.pas,
but i also don't understand.
 
; ;各位大侠请继续!!!!
; ; 本人属于超级笨一类,我很想知道如何实现Form总是在底端!

; ; 能否给源码?!
 
; ; 这几天看到一张光盘,用一软件能虚拟几个桌面,
也就是说无所不能的Delphi也应该能做出个桌面各位
大侠指点指点!!!!!!!!
 
有以下 api: 或许可以帮忙。
CloseDesktop
CloseWindowStation
CreateDesktop
CreateWindowStation
EnumDesktops
EnumDesktopWindows
EnumWindowStations
GetProcessWindowStation
GetThreadDesktop
GetUserObjectInformation
GetUserObjectSecurity
OpenDesktop
OpenInputDesktop
OpenWindowStation
SetProcessWindowStation
SetThreadDesktop
SetUserObjectInformation
SetUserObjectSecurity
SwitchDesktop

就是没试过。
 
桌面好像应该是个窗口,我用双飞燕4D+鼠标,可以设定按键使窗口最大化,
我将Focus移到桌面,按键即可看到出现桌面标题栏最大化的过程(当然桌
面不会变大,它本身就是占满整个屏幕的).
 
wint说的是对的,桌面是个listview,这一点无可怀疑。
 
桌面是个窗口, 你用API 函数查找名字为"Progman"的窗口,就能找到它,
还可以用找到的句柄把它给Hide了,不信你试试。
 
MSDN,“Desktop WINDOW”
当然这个window里面有个syslistview32
 
有个叫HandlSpy.exe的软件,我用它看了看桌面,没错,写着:SysListView32.
 
; ;最近看得一API函数说明:GetDesktopWindows
只是查Help时找不到,书名《新编Windows API 参考大全》
有如下注释:
; ;函数动能: 该函数返回桌面窗口的句柄。 ;桌面窗口覆盖整个屏幕。
; ;函数原型: HWND GetDesktopWindows (VOID)
; ;参数:无
; ;返回值: 函数返回桌面窗口的句柄。

; ;瞧,桌面是窗口,要不就是书骗我。

; ; 不知各位大侠有何见教!!!!
; ; VOID 是何方神胜!!!
; ; 有无用过GetdesktopWindows!!!!!
 
应该是个窗口!
 
What you can see on Computer!
 
桌面吗?
在Delphi中就是screen对象,
试试下面的程序。

procedure TForm1.Button1Click(Sender: TObject);
var ; ; //变量声明
; dc:HDC;
begin
; DC := GetDC (0);
; FullscreenCanvas := TCanvas.Create;
; FullscreenCanvas.Handle := DC;
// ;Fullscreen.Canvas.CopyRect (Rect(0,0,screen.Width, screen.Height),fullscreenCanvas,Rect(0,0,Screen.Width,Screen.Height));
; FullscreenCanvas.CopyRect (Rect(0,0,Image1.Width, Image1.Height),Image1.Canvas,Rect(0,0,Image1.Width,Image1.Height));
; ReleaseDC (0, DC);
end;
 
桌面怎能和Tscreen对象混为一谈!桌面是四个窗口的集合,分别是:Program、ShellDell_defview、Syslistview32、Sysheader32。但一般理解的是那个视窗列表控件。推荐看《The Micosoft Windows95 开发人员指南》第16章中的“桌面深入探索”。
 
; 没错,Delphi是有个Screen对象,说得就是桌面。 现在要的是如何用Form 做出个桌面,换个最简单最简单的:将Form的至于Z 轴的最后!!!当然的桌面之前,要不然看不见了!! ;:-) ;
 
后退
顶部