我的目的是当用户改变窗体大小时,工具条自适应窗口的大小,我在OnSizing事件里加了:
CRect rect;
GetWindowRect(rect);
m_wndToolBar.MoveWindow(0,0,rect.Width(),23,0);
只有在我们拉窗体边缘时候才有效,单击最大、最小化按钮时没有作用,请问怎么解决啊?

解决方案 »

  1.   

    void CLogToolDlg::OnSize(UINT nType, int cx, int cy) 
    {
    CDialog::OnSize(nType, cx, cy);

    // set window size
        if(m_bOnSize)
        {
            GetDlgItem(IDC_FRAME_TOOLBAR)->MoveWindow(12, 0, cx - 30, 48, TRUE);
      

  2.   

    在OnSysCommand中处理
    nID = SC_MAXIMIZE 是最大化
    nID = SC_MINIMIZE 是最小化
      

  3.   

    在OnSysCommand中处理
    nID = SC_MAXIMIZE 是最大化
    nID = SC_MINIMIZE 是最小化
      

  4.   

    在OnSize(UINT nType, int cx, int cy) 函数中加入下列语句.if (nType==SIZE_MINIMIZED) 
    {
        //your action
    }
      

  5.   

    void __fastcall RestrictMinimizeMaximize(TMessage &Msg); 
         
         BEGIN_MESSAGE_MAP 
         MESSAGE_HANDLER(WM_SYSCOMMAND, TMessage, RestrictMinimizeMaximize) 
         END_MESSAGE_MAP(TForm) 
        2、在Form的单元文件中添加: 
         
         void __fastcall TForm1::RestrictMinimizeMaximize(TMessage& Msg) 
         { 
         if (Msg.WParam == SC_MINIMIZE) 
         { 
         //catches minimize... 
         } 
         else if (Msg.WParam == SC_MAXIMIZE) 
         { 
         //catches maximize... 
         } 
         TForm::Dispatch(&Msg); 
         // or "else TForm::Dispatch(&Msg)" to trap 
         } 
         
    上面的程序是C++BUILDER的,我现在机器上没有VC,没办法调试,你自己简单改一下就可以了