使用WINXGUI实现对话框布局控制 Splitter与 Pane控制

本文介绍了如何在DELPHI和.NET环境下,借助WINXGUI实现对话框的Splitter和Panel布局控制。通过SplitterWindow和CPaneContainer,可以方便地实现控件的分组和布局。WINXGUI支持嵌入对话框设计,并且提供可视化功能。文章提供了一个应用例子,展示如何利用WTL的SplitterWindow和静态文本控件来动态生成和子类化Pane,从而在VS6.0的对话框上直接进行设计。源代码和详细信息可在指定链接获取。
摘要由CSDN通过智能技术生成

     在DELPHI和.NET的可视化设计中,利用Splitter和Panel可以实现控件的分组和布局控制,在WTL中提供了SplitterWindow对于对话框程序非常方便,而提供的CPaneContainer只能容纳一个控件,不能达到完全可视化的目的.
WINXGUI提供了嵌入对话框设计的方式,本文的PANE控制就是基于WINXGUI实现的.实际上在WTL中也可以实现类似控制,但是用WINXGUI实现起来尤其方便,并且WINXGUI本身支持可视化设计. 参见http://winxgui.com

  利用WINGUI的子类化技术,可以实现PANE控制,利用类似WINGUI设计的宏可以简化设计,利用WTL的SplitterWindow可以实现窗口分割控制.这样通过Spliter和Pane可以在VS6.0的对话框上直接进行设计,其中Splitter控制可以使用StaticText控件占位生成或直接动态生成,而Pane可以直接子类化StaticText控件.

一个应用例子: 需要使用WINXGUI.

 代码下载请见http://www.winxgui.com/forum/viewthread.php?tid=4&extra=page%3D1

   

                      WTL::CHorSplitterWindowEx m_left;
 
    
int  OnInitDialog(HWND hWnd, HWND wParam)
    
{
        CenterWindow();
        m_left.CreateFromID(m_hWnd,IDC_LEFT);
        m_left.SetSplitterPos(
100);

        WINX_PANE_BEGIN(IDC_PANE2)
            WINX_PANEITEM(IDC_MY_EDIT,PANE_SIZE_X
|PANE_SIZE_Y)
        WINX_PANE_END();

        WINX_PANE_BEGIN(IDC_PANE1)
            WINX_PANEACCEL(IDR_ACCELERATOR)
            WINX_PANEITEM(IDC_HELP_BTN,PANE_MOVE_X)
            WINX_PANEITEM(IDC_HIDE_BTN,PANE_MOVE_X)
        WINX_PANE_END();

        WINX_PANE_BEGIN(IDC_PANE3)
            WINX_PANEACCEL(IDR_ACCELERATOR)
            WINX_PANEITEM(IDOK,
0)
            WINX_PANEITEM(IDCANCEL,
0)
            WINX_PANEITEM(IDC_ABOUT,PANE_MOVE_Y)
        WINX_PANE_END();

        CWindow pane1 
= GetDlgItem(IDC_PANE1);
        pane1.SetParent(m_left);
        CWindow pane2 
= GetDlgItem(IDC_PANE2);
        pane2.SetParent(m_left);
        m_left.SetSplitterPanes(pane1,pane2);
        
return 0;
    }


PANE的源代码

 

// winx使用子类化(Subclass)技术实现Pane控制
// by QWL1996@GMAIL.COM
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值