关于HTNOWHERE在Comctrls和windows中不同的定义 |
尚未結案
|
gyao
一般會員 發表:5 回覆:8 積分:7 註冊:2005-02-23 發送簡訊給我 |
遇到这样的一个问题,希望各位能够提供些指点:
我需要限制窗体的移动,所以使用了如下的代码:
uses Windows, Messages, ShellAPI, SysUtils, Variants, Classes, Graphics, SyncObjs, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Buttons, ComCtrls, ............... ......... procedure TForm_Main.WmNCHitTest(var Msg : TWMNCHitTest); begin DefaultHandler(Msg); if FormPopMenu_Lock.Checked=True then begin if Msg.Result=HTCAPTION then Msg.Result := HTNOWHERE; // Dont move the window end; end;但是编译的时候总是提示Error:[Error] UnitMain.pas(4130): Incompatible types: 'Integer' and 'THitTest'。 根据提示此时的常数HTNOWHERE是由ComCtrls提供,为THitTest类型;而msg.result似乎是Integer类型,所以提示错误。但是后来我发现在windows.pas里也有一个HTNOWHERE的常数定义,所以我在use单元里把cComctrls移动到windows的前面,error就不在提示了。 想请教各位,这是delphi的bug么?还是我使用上有什么问题?我是个delphi的初学者,麻烦各位大人指教。多谢。 btw:为了实现我限制窗体移动的目的,此处是否应该写HTNOWHERE?还是HTCLIENT?我对这个的理解很肤浅。 發表人 - gyao 於 2005/03/29 13:06:41 發表人 - gyao 於 2005/03/29 13:16:38 |
gyao
一般會員 發表:5 回覆:8 積分:7 註冊:2005-02-23 發送簡訊給我 |
|
gyao
一般會員 發表:5 回覆:8 積分:7 註冊:2005-02-23 發送簡訊給我 |
|
gyao
一般會員 發表:5 回覆:8 積分:7 註冊:2005-02-23 發送簡訊給我 |
|
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
|
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
|
gyao
一般會員 發表:5 回覆:8 積分:7 註冊:2005-02-23 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |