两个老生常谈的问题:
2.如何在程序运行期间用鼠标拖动窗体上的控件? 【程序编程相关:ORACLE数据库管理员的职责(转)】 1.如何实现鼠标点住客户区拖动窗体?如何移动没有标题栏的窗体? 【推荐阅读:为什么要制定一个标准,它的实际意义在哪儿】-------------------------------------------------------------------------------- 【扩展信息:C#中程序的互斥运行】
在我这里,这两个问题是这样解决的——
★ 拖动窗体 ★ 经典的做法:"欺骗"系统,让它以为点中的是窗体的标题栏type tform1 = class(tform) …… private procedure wmnchittest(var m: twmnchittest); message wm_nchittest; end;var
form1: tform1; implementationprocedure tform1.wmnchittest(var m: twmnchittest);
begin inherited; //call the inherited message handler if m.result := htclient then //is the click in the client area? m.result := htcaption; //if so, make windows think it´s on the caption bar.end;
------------------------------------------------------------------------------------------
这种做法看似巧妙,但实际上有缺陷,你会发现,窗体的客户区不可能向上移出屏幕.... 下一页