超难问题:怎样用DELPHI制作1像素的主窗口,当对FORM的尺寸小到一定程度时就不能再小了,所以这种设置不能做1像素的窗口。高手可以给出API来。

解决方案 »

  1.   

    注意,不能在启动时用类似以下的代码,也就是必须要用API
     Form1.Height:=1;
     Form1.Width :=1;
      

  2.   

    顺便把SetWindowPlacement也不准用,看看还有什么其他的API
      

  3.   

    我是散分,顺便搞个讨论而已,你还看不出,UP都有分。
    请诸位回答时不要更改我条件,做个没有窗体是简单,只要用ShowMainForm就可以,但我的条件是:用API生成1像素的窗口。
      

  4.   

    另外SetWindowPlacement也不准用,当然比他更常用的CreateWindowEx也不能用
      

  5.   

    procedure TForm1.FormCreate(Sender: TObject);
    begin
      BorderStyle := bsNone;
      Color := clRed;
      Height := 1;
      Width := 1;
    end;看看你的显示器是不是有一个小红点,赶快跑,要爆炸了~~~~~
      

  6.   

    看清楼主的问题再回答,是要用  API 楼上的同志。
    var
      HRGN:THandle;
    begin
      HRGN:=CreateRectRgn(1,1,2,2);
      try
        SetWindowRgn(Handle,HRGN,True);
      finally
        DeleteObject(HRGN);
      end;
    end;
    //顺便说一句楼主也挺无聊 -_-!
      

  7.   

    cnmaxu(Max) 哈哈,是有点无聊啊,兄弟你做过不规则窗口?
      

  8.   

    楼上的楼上那个严格来说不算……那只是显示区域大小罢了,实际窗体大小是不变的,不信拖动一下看看另外不明白楼主为啥非要用API? 那干脆全用API得了自己注册窗体类,自己创建窗体一句话,多余……
      

  9.   

    cnmaxu(Max)的这个完全找不到那个“一点”,估计是近视不容易发现~
      

  10.   

    to laolaocao(加勒比强盗) 
    你把我的代码拿下去改一下,改成 HRGN:=CreateRectRgn(1,1,200,200);你就看见啦,
    你可以把它当成一个像素嘛。哈哈。。
    楼主摆明是了散分+散心嘛,你还真去看啊,哈哈。一个像素我用的是 1280 * 1024 连我自己都找不到,不过你把  Form 的 BorderStyle 属性设置成 bsNone ,Form.Color  设置成 clBlack 应该就会看到了,不要以为那是坏像素,然后去找显示器厂商退货啊,会被骂的。
    gaga!!^0^,
      

  11.   

    to  chijingde(AD) 
    严格来讲 任何有窗口句柄控件都是窗口因为都是通过 CreateWindow 系列函数生出来的,
    TButton 也不例外,你要不要试试看在 From 上面摆一个 1 像素的 Button 出来,
    能么?当然能!散分+ 散心啊,哈哈。
      

  12.   

    to cnmaxu(Max) 
    寒~我还估计把分辨率设到最小
      

  13.   

    直接用 CreateWindow 函数指定窗口大小就可以了
    然后 ShowWindow, UpdateWindow
      

  14.   

    你也可以在窗口显示前 SetWindowsPos 或 MoveWindow 来调整大小
      

  15.   

    严重警告,kunlunlang(啊庸)的ID号已经被封,以后凡是发无聊贴的一律都封ID。
    你问我为啥知道他被封了,倒~~,这都想不到,我就是他嘛。
    封多少天了?嘿嘿,我也不知道,反正这几天都上不去了。
      

  16.   

    to qrMs(空气)
    代码贴出来,别光说不练 O ,接分也要职业一点嘛 ^O^。
      

  17.   

    再保留36小时就给分,回答出API的无论有无代码都给10分/个,其他的,计算所有回答,平均分配,多答多得,顺便问一下,我们下个问题是什么?
      

  18.   

    BorderStyle := bsNone; 之后设置w,h 难道不行吗?