当前位置:首页 » 软件行业

Tab控件如何知道选项卡已改变?(PostMessage()的用法说详细参考?)

八月 3, 2007

 发表在: java



我在使用ctabctrlssl(www.codeproject.com上有源码下载,继承自ctab)时遇到一个问题:无法得到tab控件的tcn_selchange消息。我的做法是(照www.codeproject.com上的说明做的):窗口上的tab资源用class   wizard生成一个ctabctrlssl类的变量,然后用vc6的class   wizard产生tcn_selchange的消息映射函数onselchange(...),经用messagebox()测试,该函数内的代码并未执行,查看ctabctrlssl的源码,发现该类已经产生了同样的消息映射tcn_selchange,经测试在我转换选项卡的时候此onselchange(...)函数内的代码执行了,即消息在ctabctrlssl中处理后就消失了,父窗口因此没有得到该消息。如果去掉此类中的消息映射,则对话框窗口中的onselchange(...)函数就执行到了,由于ctabctrlssl内的tcn_selchange消息无法去掉(ctabctrlssl要在改变选项卡时要显示其对应的选项卡内子窗口,同时隐藏以前的窗口,还有其它工作),所以此处必须保留。如何才能在父窗口(对话框窗口)中获得此消息并执行相应的程序?因为在改变选项卡的时候我还有一些额外的工作要做。我想在ctabctrlssl::onselchange(...)的最末尾用postmessage发送tcn_selchange消息给父窗口,但不知此主句怎么写。postmessage的参数实在是不明白,主要是wparam和lparam的值不知道如何确定,花了大量时间查msdn、www.csdn.net、及用google搜索,都没有找到相关资料,在此请教各位大侠,小弟初学vc,不懂的东西太多了。。。谢谢!  
 

电脑软件技术推荐:

  • 用VB编写FLASH动画播放器[详细内容]
  • 用VB编写“红绿灯”程序[详细内容]
  • 用ASP编写网络传呼机[详细内容]
  • Unix系列shell程序编写(上)[详细内容]
  • 黑客技术:木马是如何编写的(三)[详细内容]
  • 黑客技术:木马是如何编写的(二)[详细内容]
  • 用VB6编写强力的windows隐藏引擎[详细内容]
  • 利用VB编写屏幕保护程序[详细内容]
  • 使用UML编写Java应用程序[详细内容]
  • 使用WML和ASP编写动态手机页面[详细内容]
  • 相关提议:
    发表者:happyparrot

    用pretranslatemsg函数是否能截获该消息呢?

    发表者:antonliox

    up

    发表者:linur

    nmhdr   nmhdr;  
      nmhdr.hwndfrom=this->getsafehwnd();  
      nmhdr.idfrom=id_tab;     //得改成你的tab的id  
      nmhdr.code=tcn_selchange;  
      cwnd*   pparent=this->getparent();  
      ::sendmessage(pparent->getsafehwnd(),wm_notify,(wparam)(id_tab),(lparam)(&nmhdr));  
       
      在你ctabctrlssl::onselchange(...)的最末尾试试看,我吃饭去

    发表者:greenabc

     
      很简单,如下:  
       
      void   ctabctrlssl::onselchange(wparam   wparam,lparam   lparam)  
       
      {  
                  .  
                  .  
                  .  
       
      ::postmessage(getparent()->getsafehwnd(),tcn_selchange,wparam,lparam);  
       
      }  
      因为在   ctabctrlssl   内反射了   tcn_selchange   。  
     

    发表者:fairyprince

    你可以做个   tabctrl   扩展类,然后在改变事件过程中向父窗体发送自定义消息吗  
      为什么要拦截呢

    发表者:oyljerry

    截获消息后,可以再转发

    .

    No comments in this entry


    Post a Comment »

    Logged in

    Advertising

    Categories

    相关文章