为什么我的状态栏被遮挡了

Stud_movingj 2017-11-30 11:24:35
头文件部分代码:
class CMyDlg : public CDialog
{
// Construction
public:
CMyDlg(CWnd* pParent = NULL); // standard constructor
CToolBar m_toolbar;//工具栏
CStatusBarCtrl m_StatusBar;//状态栏
//...............下面省略


在BOOL CMyDlg::OnInitDialog()中添加如下代码:
m_StatusBar.Create(WS_CHILD|WS_VISIBLE|SBT_OWNERDRAW, CRect(0,0,0,0), this, 0);//Creates a status bar control and attaches it to a CStatusBarCtrl object.  
int iPaneDim[3] = {100,200,-1};
m_StatusBar.SetParts(3,iPaneDim);
m_StatusBar.SetText(_T("aaaaa"),0,0);
m_StatusBar.SetText(_T("bbbbb"),1,0);
m_StatusBar.SetText(_T("ccccc"),2,0);


运行后状态栏下面被挡住一部分


对话框绘制界面:
...全文
475 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Stud_movingj 2017-12-03
  • 打赏
  • 举报
回复
好了,是我把
m_StatusBar.Create(WS_CHILD|WS_VISIBLE|SBT_OWNERDRAW, CRect(0,0,0,0), this, 0);//Creates a status bar control and attaches it to a CStatusBarCtrl object.  
int iPaneDim[3] = {100,200,-1};  
m_StatusBar.SetParts(3,iPaneDim);  
m_StatusBar.SetText(_T("aaaaa"),0,0);  
m_StatusBar.SetText(_T("bbbbb"),1,0);  
m_StatusBar.SetText(_T("ccccc"),2,0);  
放太前了。。 我放在了BOOL CMyDlg::OnInitDialog()里面第一行 挪到后面状态栏就回复正常了
schlafenhamster 2017-12-02
  • 打赏
  • 举报
回复
通常 CMainFrame 会自动 调 RepositionBars 但 在 对话框程序中 用 StatusBar 则 必须 在 Create 后,调用 RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);
Stud_movingj 2017-12-02
  • 打赏
  • 举报
回复
引用 1 楼 VisualEleven 的回复:
RepositionBars
请问具体怎么实现 能贴一下代码吗。我小白。。网上看了这个函数的说明还是不懂
zgl7903 2017-11-30
  • 打赏
  • 举报
回复
添加WM_SIZE 响应, 按客户区位置 MoveWindow 调整
schlafenhamster 2017-11-30
  • 打赏
  • 举报
回复
资源中 左下角的 标尺 拉到 最下
Eleven 2017-11-30
  • 打赏
  • 举报
回复
RepositionBars

15,979

社区成员

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

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