如何改变对话框的菜单显示位置

shixie 2003-05-23 01:06:44
使用SetMenu(&menu);设置好了对话框的菜单后,菜单默认的显示位置是左上角,但我不想让它在哪里显示,如何让它在指定位置(CPoint)显示呢?
我想到的方法有:
1、做一个工具条,将要显示的菜单放到工具条上。再将工具条显示到对话框上;
2、做一排按钮,将要显示的菜单项依次放到按钮上;
不过我想问一下,有没有其它更好的方法来改变菜单显示位置呢?
哪位高手能告诉我?
...全文
288 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhanglingfei 2003-05-27
  • 打赏
  • 举报
回复
兄弟,给你一段代码,你看用不用得着。

//计算工具条位置
CRect rcClient;
CRect rcWindow;
GetClientRect(&rcClient);
GetWindowRect(&rcWindow);

GlobalLayout *playout;
playout=((CPatternDesignCADApp *)AfxGetApp())->GetGloballayoutPtr();
playout->SetWindowRect(&rcWindow);
playout->SetClientRect(&rcClient);

CSize srToolBar=
m_wndToolBar.CalcFixedLayout(FALSE,TRUE);
CSize szToolSelect=
m_wndToolSelectBox.CalcFixedLayout(FALSE,FALSE);
CSize szObjView=
m_wndObjViewBox.CalcFixedLayout(FALSE,TRUE);
CSize szColorBar=
m_wndColorBox.CalcFixedLayout(FALSE,TRUE);
CSize szNavigator=
m_wndNavigatorBox.CalcFixedLayout(FALSE,TRUE);
CSize szLayerBar=
m_wndLayerBox.CalcFixedLayout(FALSE,TRUE);

playout->SetSize(&szToolSelect,
GLOBALLAYOUT_TOOLSELECTSIZE);
playout->SetSize(&szColorBar,
GLOBALLAYOUT_TOOLCOLORSIZE);
playout->SetSize(&szNavigator,
GLOBALLAYOUT_TOOLNAVIGATORSIZE);
playout->SetSize(&szObjView,
GLOBALLAYOUT_TOOLOBJVIEWSIZE);
playout->SetSize(&szLayerBar,
GLOBALLAYOUT_TOOLLAYERSIZE);

// 浮动工具条。
int nPosY=(rcWindow.Height()-rcClient.Height())+srToolBar.cy;

FloatControlBar(&m_wndToolSelectBox,
CPoint(rcClient.left,nPosY), CBRS_ALIGN_LEFT);
nPosY-=(rcWindow.Height()-rcClient.Height());
FloatControlBar(&m_wndNavigatorBox,
CPoint(rcClient.Width()-szNavigator.cx,nPosY),
CBRS_ALIGN_LEFT);
nPosY+=(szNavigator.cy+20);
FloatControlBar(&m_wndObjViewBox,
CPoint(rcClient.Width()-szObjView.cx,nPosY),
CBRS_ALIGN_LEFT);
nPosY+=(szObjView.cy+20);
FloatControlBar(&m_wndColorBox,
CPoint(rcClient.Width()-szColorBar.cx,nPosY),
CBRS_ALIGN_LEFT);
nPosY+=(szColorBar.cy+20);
FloatControlBar(&m_wndLayerBox,
CPoint(rcClient.Width()-szLayerBar.cx,nPosY),
CBRS_ALIGN_LEFT);

return 0;
}
shixie 2003-05-26
  • 打赏
  • 举报
回复
菜单是系统默认的(SetMenu(&menu)),不知如何MoveWindow ?
syl08341 2003-05-23
  • 打赏
  • 举报
回复
MoveWinodow()

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧