vc++2008 feature package中CPaneDialog的使用方法

1. 在资源里添加dialog时,使用formview的dialog。
2. 给dialog添加类CParamsDlg,基类选CDialog,生成代码后,将代码中的CDialog改成CPanedialog

3. 创建CPaneDialog,其中m_wndFileView是一个CDockablePane子类的对象。

 


    
if  ( ! m_wndFileView.Create(strFileView,  this , CRect( 0 0 200 200 ), TRUE, ID_VIEW_FILEVIEW, WS_CHILD  |  WS_VISIBLE  |  WS_CLIPSIBLINGS  |  WS_CLIPCHILDREN  |  CBRS_LEFT |  CBRS_FLOAT_MULTI))
 
{
  TRACE0(
"Failed to create File View window/n");
  
return FALSE; // failed to create
 }


    
if  ( ! m_dlgParams.Create (_T( " DialogBar " ),  this , TRUE,
        MAKEINTRESOURCE (IDD_FORM_PARAMS), 
        WS_CHILD 
|  WS_VISIBLE  |  WS_CLIPSIBLINGS  |  WS_CLIPCHILDREN  |  CBRS_LEFT  |  CBRS_FLOAT_MULTI, 
        IDD_FORM_PARAMS))
    
{
        TRACE0(
"Failed to create Dialog Bar/n");
        
return FALSE;      // fail to create
    }


    m_wndFileView.EnableDocking(CBRS_ALIGN_ANY);
    m_dlgParams.EnableDocking(CBRS_ALIGN_ANY);
    DockPane(
& m_wndFileView);
    
    m_dlgParams.DockToWindow (
& m_wndFileView, CBRS_ALIGN_BOTTOM);

    
   
4. 在CParamsDlg中对控件添加响应事件,不能捕获到,初步想到的解决办法未,在CParamsDlg中添加一个通过控件id取得控件内容的函数,然后将窗体中的按钮响应事件,添加到mainframe中,这样由mainframe来捕获,在响应函数里调用CParamsDlg中的函数,来获得对应控件的值。

 

  cpanedialog风格问题:
在你的dialog里面加入WM_PAINT的响应,在OnPaint()函数里写如下代码:
CPaintDC dc(this);
CMemDC memDC(dc,this);
CRect rectClint;
GetClientRect(rectClint);
CMFCVisualManagerOffice2007::GetInstance()->OnFillOutlookPageButton(&memDC.GetDC(),this,rectClient, rectClient);

 

以上这些代码还没验证,先把它保存下来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值