zoukankan      html  css  js  c++  java
  • 关于XTToolkitPro中DialogPanes无法响应OnDockingPaneNotify事件的解决办法。

         由于项目需要用到Xtreme ToolkitPro 2008 Vol 2 (12.1.1)中的Pane,即类似IDE里的面板。

    看了套件自带的DialogPanes实例,于是自己建立一个对话框的工程进行测试,但发现就是创建不出来。

    开发环境:WindowsXP + VC6 + Xtreme ToolkitPro 2008 Vol 2 (12.1.1)

    出现问题:

         在对话框的OnInitDialog事件中建立pane,但是系统不调用 OnDockingPaneNotify 事件,界面上也不显示面板。

    搜索了下网络,其中一个有价值的帖子是说由于建立面板的ID号与程序中的菜单ID重复,而又有响应菜单的OnCommand函数,所以

    不调用OnDockingPaneNotify,更改ID号后解决。

    但我自己检查了后发现我的ID并没有重复,所以排除了,仔细查看组件自带的例子,发现它死活就是能出来,而我的就是不行。。。

    最后又建立了一个工程,照着一份份代码粘贴,发现我的工程一摸一样,就是少了个OnSize事件。

    后来也添加了该事件,把例子的代码复制过去竟然OK了。最后才发现界面必须有OnSize事件响应,

    而且在事件里必须有下列代码:

    void CPaneDlg::OnSize(UINT nType, int cx, int cy)
    {
     CDialog::OnSize(nType, cx, cy);
     
     // 必须有下列代码

     RepositionBars(0, 0xffff, AFX_IDW_PANE_FIRST, 0, 0, &rcClient);
     RepositionBars(0, 0xffff, AFX_IDW_PANE_FIRST, reposQuery, &rcClient, &rcClient);

    }

    症结:OnSize事件中重新定位各个控制条,此时才会触发OnDockingPaneNotify事件。

  • 相关阅读:
    使用hibernate实现树形结构无限级分类
    专家看台:盛大架构师周爱民回顾职业历程,分享十项建议
    开始运行命令大全
    rsvp.exe,AdskScSrv.exe ,avp.exe
    Web2.0 编程思想:16条法则
    李嘉诚:性格才是命运的决定因素
    中兴笔试题目
    管理Websphere的10个有用命令
    我的程序语言实践
    20200514:实现分布式Session的过程是怎样的?
  • 原文地址:https://www.cnblogs.com/jhkdiy/p/2381722.html
Copyright © 2011-2022 走看看