如题:   1 想要在 CPropertySheet 页面的顶端添加一个下来菜单, 如何做?
   2 想要让创建的  CPropertySheet 页面没有边框。又该如何?

解决方案 »

  1.   

    1。首先你要添加一个菜单资源
    2。
             menu.LoadMenu(IDR_MENU1);
    CWnd *hwnd;
      hwnd=AfxGetMainWnd();
    hwnd->SetMenu(&menu);
      

  2.   

    CMenu menu;
    CWnd *hwnd;menu.LoadMenu(IDR_MENU1);
    hwnd=AfxGetMainWnd();
    hwnd->SetMenu(&menu);
    ——————————————————————————2 想要让创建的  CPropertySheet 页面没有边框。又该如何?什么意思?
      

  3.   

    你自己派生一CPropertSheet的子类,在其OnInitDialog中LoadMenu/SetMenu,第二个好像不行吧。
      

  4.   

    弹出式菜单:
             CPoint pt;
    ::GetCursorPos(&pt);
    CMenu menu ,* pSubMenu;
    menu.LoadMenu(IDR_MENU1);
    pSubMenu = menu.GetSubMenu(0);
    if(pSubMenu)
    pSubMenu->TrackPopupMenu (TPM_LEFTALIGN ,pt.x, pt.y ,this);
      

  5.   

    1. 以下包含了CPropertSheet类对话框的图标, MENU, BUTTON字体的改变.
    注意: LOADMENU后一定要改变SHEET的高度, 因为CPropertSheet不知道有MENU的存在.
    可放在OnInitDialog()
    -------------------------------------------------------------
             // ICON
    m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
    SetIcon(m_hIcon, TRUE);
    SetIcon(m_hIcon, FALSE); // Load main menu
    CMenu mainMenu; VERIFY(mainMenu.LoadMenu(IDR_MAINFRAME));
    SetMenu(&mainMenu);  // Reset sheet height
    int nmBarHeight = GetSystemMetrics(SM_CYMENUSIZE);
    CRect rect;
    GetWindowRect(&rect);
    rect.bottom += nmBarHeight;
    SetWindowPos(NULL, rect.left, rect.top, rect.Width(), rect.Height(), SWP_SHOWWINDOW); // Change buttons title
    CString strOK;
    CString strCancel;
    strOK.LoadString(IDS_STRING_OK_CAPTION); 
    strCancel.LoadString(IDS_STRING_CANCEL_CAPTION);
    GetDlgItem(IDOK)->SetWindowText((LPCTSTR)strOK);
    GetDlgItem(IDCANCEL)->SetWindowText((LPCTSTR)strCancel);
    -------------------------------------------------------------2. 无边框可在OnInitDialog()里设定WINDOWS STYLE