首先,你的区域肯定还要是在一个Form上面,你在Form.OnMouseEvent里面写代码,
然后在那里判断鼠标的位置在不在当前的区域中,就用下面这个windows api
函数,这个比较简单,你试一下就可以了。 
The PtInRegion function determines whether the specified point is inside the specified region. 
BOOL PtInRegion(
    HRGN hrgn, // handle of region 
    int X, // x-coordinate of point  
    int Y  // y-coordinate of point  
   );

解决方案 »

  1.   

    1、求简:使用热点,用个Lable之类的,呵,肤浅,肤浅......
    2、变通:定做一个差不离形状的多边形控件,可俺也没试过。嘿!
    3、耍硬:用微积分思想——在指定区域内试产生若干相邻很近的竖线(或者横线)计算各线坐标值范围,再用PtInRegion这一API函数判断现“鼠儿”的位置...见笑、见笑!
      

  2.   

    我的意思是office中小助手的做法。
      

  3.   

    Mars(战神):直接调用Microsoft Agent接口!效果奇好!!
               说话了,右键菜单都有。
      

  4.   

    ch81(missile)  的方法可行.
      

  5.   

    ch81(missile):有例子吗?部分源码也行。 
      

  6.   

    你的不规则区域是一幅图吗?
    如果是你可以通过这幅图来创建一个区域,
    然后用PtInRegion来判断是否在此区域内。
      

  7.   

    ch81(missile):[email protected] 
      

  8.   

    Mars(战神):给了你一篇文章,根据那篇文章,应该可以编出一个东东!