力为的技术博客

联系 聚合 管理
  154 Posts :: 1 Stories :: 561 Comments :: 0 Trackbacks

MFC,在对话框中嵌入工具条,很简单:

BOOL CYourDlg::OnInitDialog()
{
   
if!CDialogEx::OnInitDialog() )
      
return FALSE;

   
if( m_ToolBar.Create( this, AFX_DEFAULT_TOOLBAR_STYLE, 100 ) )
   
{
      m_ToolBar.SetPaneStyle( m_ToolBar.GetPaneStyle() 
         
& ~(CBRS_GRIPPER | CBRS_SIZE_DYNAMIC | CBRS_BORDER_ANY) );
      m_ToolBar.LoadToolBar(theApp.m_bHiColorIcons 
? IDR_MAINFRAME_256 : IDR_MAINFRAME);
      
      CSize   sizeToolBar 
= m_ToolBar.CalcFixedLayout( FALSE, TRUE );
      m_ToolBar.SetWindowPos( NULL, 
00, sizeToolBar.cx, sizeToolBar.cy,
         SWP_NOACTIVATE 
| SWP_NOZORDER );

 
   }


   
return TRUE;
}


 

更新图标的状态:
m_ToolBar.OnUpdateCmdUI((CFrameWnd*)this, TRUE);

虽然CDialog跟CFrameWnd之间没啥关系,这里强转也没啥问题。要责怪就怪MS没把接口留好。
posted on 2011-03-10 14:55 力为 阅读(4248) 评论(1)  编辑 收藏 引用 所属分类: 3. VC&MFC&Qt

评论

# 解决在Dialog中处理Toolbar上的消息处理问题 2011-03-10 20:33 力为
让CMFCToolBar上Button的消息处理不经过Frame,而使用Dialog里面的消息处理函数:

m_ToolBar.SetRouteCommandsViaFrame(FALSE);  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理