程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> dockablepane-mfc mdi窗口最小化狀態恢復後沒有自動刷新

dockablepane-mfc mdi窗口最小化狀態恢復後沒有自動刷新

編輯:編程綜合問答
mfc mdi窗口最小化狀態恢復後沒有自動刷新

程序剛運行時的界面
圖片說明

最小化恢復以後界面
圖片說明

可能是垂直工具條加上以後導致的,之前好像沒有這種情況
垂直工具條時用CDockablePane裡面嵌一個CMFCToolbar做的,代碼為

#include "stdafx.h"
#include "ToolboxPane.h"
#include "resource.h"

CToolboxPane::CToolboxPane(void)
{
}

CToolboxPane::~CToolboxPane(void)
{
}

IMPLEMENT_DYNAMIC(CToolboxPane,CDockablePane)
BEGIN_MESSAGE_MAP(CToolboxPane, CDockablePane)
ON_WM_CREATE()
ON_WM_SIZE()
ON_WM_PAINT()
END_MESSAGE_MAP()

int CToolboxPane::OnCreate( LPCREATESTRUCT lpCreateStruct )
{
if (!m_toolbar.CreateEx(this, TBSTYLE_FLAT, CBRS_ORIENT_VERT | WS_CHILD | WS_VISIBLE | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_toolbar.LoadToolBar(IDR_TOOLBOX,0,0,TRUE,0,0,IDB_TOOLBOX))
{
TRACE0("未能創建工具欄\n");
return -1; // 未能創建
}

CSize sz = m_toolbar.CalcSize( TRUE );
m_toolbar.StretchPane( sz.cx, FALSE );

m_toolbar.AdjustLayout();

return 0;

}

void CToolboxPane::OnSize( UINT nType, int cx, int cy )
{
CDockablePane::OnSize(nType, cx, cy);

CSize sz = m_toolbar.CalcSize( TRUE );
m_toolbar.StretchPane( sz.cx, FALSE );

m_toolbar.AdjustLayout();

}

void CToolboxPane::OnPaint()
{

}

是不是少什麼事件處理了?

最佳回答:


你需要在OnDraw,OnPaint中重繪控件

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved