首先,你几乎不可能使用一个Button对象来实现,因为这种子窗口只可能出现在客户区,若超出客户区则会自动裁剪。    所以,代替的方法是在OnNcPaint中画出这个按钮。在OnNcLbuttonDown中,你判断鼠标是否点击了你的按钮。如果是,就强迫NC重画,画出按钮被按的样子。在OnNcLButtonUp中,你判断是否按钮处于被按的状态,如果是就调用你的按钮被按时的处理函数。    至于判断状态以及画按钮跟你在客户区做是一样的。另外,得到系统尺寸可以使用GetSystemMetrics函数(好像是这么拼的吧)。

解决方案 »

  1.   

    这个问题我曾经也在我们学校讨论过,这种方法是可以的。另外我想说一下,在 www.codeguru.com 上我见过一个HOOK的例子。我身边有一个。你想要
    给我发个MAIL吧。
      

  2.   

    可以利用Title bar现成的按钮,max,min,restore.这些按钮实际是SystemMenu;可以用GetSystemMenu()获得其句柄,改成自画型,然后处理相应的消息,画出你的控件,实现按钮消息处理。
    这个法子我没试过,只是理论上是可行的。