首先建立了一个Dialog,把它映射成CDialogBar的子类,然后在CMainFrame::OnCreate()中,把对话框停靠在最下方。但是发现一个问题,对话框并不能撑满停靠的区域,而且,当整个窗口改变大小时,对话框大小不会改变,很不爽。我调用SetWindowPos设置其大小,不起作用,请问是什么原因? if (!m_dlgBar.Create(this,IDD_DIALOG1, CBRS_BOTTOM|CBRS_GRIPPER, IDD_DIALOG1))
{
TRACE0("Failed to create dialogbar\n");
return -1;
} m_dlgBar.SetBarStyle(m_dlgBar.GetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY );
m_dlgBar.EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_dlgBar);//以下代码改变大小
CRect rc;
GetClientRect(&rc);
m_dlgBar.SetWindowPos(NULL ,0,0,rc.right,rc.bottom,SWP_NOMOVE | SWP_NOZORDER);//这段代码并没有起到改变窗口大小的作用,请指教
{
TRACE0("Failed to create dialogbar\n");
return -1;
} m_dlgBar.SetBarStyle(m_dlgBar.GetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY );
m_dlgBar.EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_dlgBar);//以下代码改变大小
CRect rc;
GetClientRect(&rc);
m_dlgBar.SetWindowPos(NULL ,0,0,rc.right,rc.bottom,SWP_NOMOVE | SWP_NOZORDER);//这段代码并没有起到改变窗口大小的作用,请指教
解决方案 »
- 新手请教MFC 在dialog内画图问题
- 讨论一种软件崩溃后自动启动的方案
- 迷茫啊,大学我该学什么啊?
- 我想在我的对话筐上建立一个动态的组合框控件应该这样处理?
- 用EnableMenuItem(1,MF_BYPOSITION|MF_GRAYED)将菜单灰化之后怎么还原?
- 再问关于进度条问题
- 爽哦!刚发现一个免费电影站,只要免费注册一下就可以看!速度超快,清晰度高,最新大片竟然都有。
- socket::receive()和onReceive() 区别?
- dll中调用主程序全局对象的问题
- 如何使 DataGrid 控件的大小可以随窗口大小改变呢???有急用!!!!!!!
- 关于心跳包的问题
- 怎样创建类似于CComboBox下拉列表的窗口?
void CDlgBar::OnSize(UINT nType, int cx, int cy)
{
// TODO: Add your message handler code here CRect rc;
GetClientRect(&rc); cx = rc.right-rc.left;
cy = rc.bottom - rc.top;
this->SetWindowPos(NULL ,0,0,cx,cy,SWP_NOMOVE | SWP_NOZORDER);
CDialogBar::OnSize(nType, cx, cy);
}
还是不行
[email protected]