Thank you very much!

解决方案 »

  1.   

    我会了,真的好啊
    tmd 真好
      

  2.   

    建立或打开一个控件包,按Add按钮,添加一个模块单元,选取添加*.Pas文件
    bcb会自动建立一个对应的*.hpp文件。
    绝对不要任何修改就可以运行
    在form上添加该控件,设置Active=true
    OverrideOwnerDraw=true;
    就一切OK了。甚至在ToolBar上建立菜单用的ToolButton都变了样子
    我都试过了,真的好用 。
    TMD一切都是源代码,怎么会有木马,真笨
      

  3.   

    嗯,源码已经分析好了。已经找到了其中FlatMenu=True时第一次显示时Border没有重绘的Bug的原因。另外MeasureItem方法内部也有错误。
      

  4.   

    TO Scarlette:可以讲讲怎么改那bug吗?
      

  5.   

    小弟,有些不明,能否再详细说一遍如何使用呢,在delphi中,谢先了!
      

  6.   

    我就只看到toolbar上有一点小改变呢?怎么菜单还是一样的呢??:~~
      

  7.   

    cornermoss:
    很遗憾,这个XpMenu只不过是将TMainMenu和所有TMainMenuItem的OnOwnerDraw指向自己,然后由自己重绘罢了。上述Bug的原因在于以下代码段:  if not (csDesigning in ComponentState) then
      begin
        if (FFlatMenu) and (not FTopMenu) then
        begin
          hDcM := ACanvas.Handle;
          hWndM := WindowFromDC(hDcM);
          if hWndM <> FForm.Handle then
          begin
            DrawWindowBorder(hWndM, FMenu.IsRightToLeft);
          end;
        end;
      end;在Menu第一次弹出时,取到的hWndM总是0。这因该是设计结构上的失误,暂时还没有办法修正。
      

  8.   

    有几个问题,popup menu是不变的,而且在toolbar上的toolbutton中设定的menu1也只是
    button变,菜单并不变。
      

  9.   

    直接将控件加进来,属性设active为true就可以了,偶一直用他。
      

  10.   

    不是加*.pas吗?界面有何变化呢,我用的是delphi5没有反应