WTL CTabViewImpl 重绘Tab控件 我先实现一个自定义的Tab View控件,继承自CTabViewImpl,重绘其Tab标签。发现CTabViewImpl的CTabCtrl m_tab成员变量就是其tab标签,但是我用自定义的TabCtrl类SubclassWindow(m_tab),实现tab的重绘,发现不会调用自定义类的绘制函数,还是调用了CTabCtrl中的绘制函数。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 目前只能收到Destroy消息,其他WM_PAINT等消息收不到 父窗口有这个 宏吗?REFLECT_NOTIFICATIONS() 3楼说的对,要在BEGIN_MSG_MAP中加入REFLECT_NOTIFICATIONS(),否则子控件收不到消息。 BEGIN_MSG_MAP(CZyTabCtrl) REFLECT_NOTIFICATIONS() MESSAGE_HANDLER(WM_PAINT, OnPaint) MESSAGE_HANDLER(WM_DESTROY, OnDestroy) MESSAGE_HANDLER(WM_DRAWITEM, OnDrawItem) MESSAGE_HANDLER(WM_SIZE, OnSize) END_MSG_MAP()是不是这样加,还是没反应。我在上面下了断点,如果有消息的话不管有没有自定义处理函数都会运行到该断点,但是现在只在控件Destroy时候才有消息 在的地方不对吧,应该这样:比如你有一个窗体,窗体上面有一个子控件,需要子控件处理消息,要在窗体的消息映射里加REFLECT_NOTIFICATIONS(),然后子控件的消息可以被处理:例如: BEGIN_MSG_MAP(CCaptionWnd) MESSAGE_HANDLER(WM_PAINT, OnPaint) MESSAGE_HANDLER(WM_ERASEBKGND, OnEraseBkgnd) MESSAGE_HANDLER(WM_SYSCOLORCHANGE, OnSysColorChange) MESSAGE_HANDLER(WM_SIZE, OnSize) COMMAND_ID_HANDLER(IDC_FLAT_BUTTON, OnFlatButton) REFLECT_NOTIFICATIONS() // required by owner drawn buttons MESSAGE_HANDLER(WM_COMMAND, OnCommand) END_MSG_MAP()CCaptionWnd 是一个窗口,IDC_FLAT_BUTTON是上面的一个自绘的按钮子控件。 我是重载了一个tab控件,想响应他的WM_PAINT消息进行重绘。我用subclasswindow方法子类化那个控件,但是没有办法响应他的绘制消息,只响应到销毁的消息。我使用wtl 找到原因了,程序里面有两个View类,一个是CTabView,另一个是自定义的view类,继承自CTabViewImpl。CTabView管理所有的自定义view对象。之前是子类化了自定义view类的tab控件,实际界面上的tab控件是属于CTabView的。低级的错误。谢谢各位的帮助 给对话框换图标的问题 FireBird数据库使用求教 一小问? 有关TreeCtrl控件的叶子节点问题,不吝给分 用winpcap3.1居然找不到pcap_open, pcap_findalldevs_ex的定义和声明 线程池中讲的异步调用函数该怎么使用??谢谢 如果一应用程序异常退出,会不会调用App::ExitInstance() 为什么下面程序不能在VC6.0下通过编译? 怎么修改VC里面的库函数的路径?? 请问能否从HGLOBAL句柄得到它代表的内存块的大小 正在攻关完成端口,懂的进来 CTreeCtrl控件与CStatic刷新问题?
REFLECT_NOTIFICATIONS()
REFLECT_NOTIFICATIONS()
MESSAGE_HANDLER(WM_PAINT, OnPaint)
MESSAGE_HANDLER(WM_DESTROY, OnDestroy)
MESSAGE_HANDLER(WM_DRAWITEM, OnDrawItem)
MESSAGE_HANDLER(WM_SIZE, OnSize)
END_MSG_MAP()
是不是这样加,还是没反应。我在上面下了断点,如果有消息的话不管有没有自定义处理函数都会运行到该断点,但是现在只在控件Destroy时候才有消息
比如你有一个窗体,窗体上面有一个子控件,需要子控件处理消息,要在窗体的消息映射里加
REFLECT_NOTIFICATIONS(),然后子控件的消息可以被处理:
例如:
BEGIN_MSG_MAP(CCaptionWnd)
MESSAGE_HANDLER(WM_PAINT, OnPaint)
MESSAGE_HANDLER(WM_ERASEBKGND, OnEraseBkgnd)
MESSAGE_HANDLER(WM_SYSCOLORCHANGE, OnSysColorChange)
MESSAGE_HANDLER(WM_SIZE, OnSize)
COMMAND_ID_HANDLER(IDC_FLAT_BUTTON, OnFlatButton)
REFLECT_NOTIFICATIONS() // required by owner drawn buttons
MESSAGE_HANDLER(WM_COMMAND, OnCommand)
END_MSG_MAP()CCaptionWnd 是一个窗口,IDC_FLAT_BUTTON是上面的一个自绘的按钮子控件。
谢谢各位的帮助