利用API取得子窗体的系统菜单,删除按钮ID即可!!!但按钮还是可见的!!!

解决方案 »

  1.   

    你说的是普通窗体,MDI子窗体最大化后系统菜单在什么地方?
      

  2.   

    BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs)
    { if( !CMDIChildWnd::PreCreateWindow(cs) )
    return FALSE; cs.style = WS_CHILD | WS_VISIBLE | WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU
    | WS_THICKFRAME 
    /*| WS_MINIMIZEBOX 
    | WS_MAXIMIZEBOX;*/ return TRUE;
    }
      

  3.   

    最大化后
    菜单栏的右边?
    我觉得除了自己绘制处理非客户区外
    应该是没有办法的
    因为位于菜单栏的右边的那几个MDI子窗口控制按键好像不是Windows内部绘制的
    不会根据子窗口的风格决定按键的显示
      

  4.   

    呵呵...
    把VB版的版主zly910气晕了吧..
      

  5.   

    http://expert.csdn.net/Expert/topic/1334/1334674.xml?temp=.4553034
      

  6.   

    EnableMenuItem DISABLE 掉系统菜单的还原 ( SC_RESTORE ).
    然后处理消息, WM_SYSCOMMAND ,禁止掉 SC_RESTORE .
      

  7.   

    >>>>利用API取得子窗体的系统菜单,删除按钮ID即可!!!无可能~~~~~~~~~~~~~~~~~当窗口不是最大化时, 按下右上角那三个按钮,发出的是系统消息:WM_XXXX
    ,当窗口最大化时按下那三个按钮发出的是 WM_COMMAND 消息。
    至于消息参数是什么,我也不知(我在网吧上网,没有编译器),楼主自己试一下吧:
    把处理剩下的 WM_COMMAND 单独处理,当收到消息时,
    itoa (lparam,buffer1,100) ;
    itoa (wparam,buffer2,100) ;
    Message(NULL,buffer1,buffer2,MB_OK);看一下有什么可疑消息。
      

  8.   

    用setwindowslong()去掉窗口title栏就可以了
      

  9.   

    这个楼主大脑有问题谁也不要理他最好
    ---------------------------------------------------------
    中共中央国务院,CSDN恶人谷县,邙牛囤恶人联盟游击队大队长
    ---------------------------------------------------------
      

  10.   

    程序调用FindWindowEx得到子窗口的HANDLE(句柄)
    然后调用SetClassLong设置该窗口的类风格例如:
    SetClassLong(hwnd,//子窗口的句柄
                GCL_STYLE,//窗口style标志
                WS_OVERLAPPEDWINDOW&~WS_MAXIMIZEBOX);
    //这里假定这个窗口为WS_OVERLAPPEDWINDOW风格,然后通过位运算去掉恢复按钮。如果要精确一些,可以用GetClassLong(hwnd,GCL_STYLE)获得该窗口的风格。
      

  11.   

    如果要关注消息,可以注意这几个消息:WM_NCCREATE,WM_NCSIZE
      

  12.   

    楼主吹牛,这问题VC能解决,VB就能解决
      

  13.   

    本人认为,追溯到系统根源。每一个窗体创建前,(无论vb的mdi还是vc的单/多文档)在窗口类注册时,决定了这个窗体的外观,是不可能在运行时改变的。详细见winsdows programming 第二章
      

  14.   

    VC能做的,VB也都可以啊,不要有偏见哈
      

  15.   

    楼主大脑有没有问题,大家心中都有数,反正与正常人不一样!
    这个东西我就用VB做过!而且,我还加过子窗口的TAB,象UTRAEDIT那样!VB是有限制,有人说,VB没有消息映射,无法做COMBOBOX型的控件。可是
    现在:www.easthot.net中就提供VB做成的农历下拉控件下载。不会做,不代码实现不了。有人用VC写了取从RING 3 硬盘序列号,有人照样改成了VB的。再有,有人说VB不能做控件重载。可现在网上就有VB用重载方法实现的控件源码!这样问问题,除了是你孙子,愿意给你原码!我一定是不干的!
      

  16.   

    http://expert.csdn.net/Expert/topic/1512/1512873.xml?temp=.7930414