win32和mfc混合编程 在mfc工程中,主窗口是用createdialog创建出来的,而它的子窗口是用CWnd派生类创建的,为什么子窗体的WM_PAINT消息可以被派生类获得,而像WM_NCHITTEST和WM_LBUTTONUP等的消息却没有获得呢?是不是消息链没有链接到派生类的对应函数呢?这要怎么做? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 窗体的WM_PAINT消息是自己传递给自己的,因此没有什么机会能错了而一般情况下WM_NCHITTEST应该只有主窗口需要吧?个人觉得如果是传递给子窗口他应该能被子窗口获得,关键你确定他被传给子窗口了?WM_LBUTTONUP应该可以传给子窗口, BTW:没有任何理由使用所谓的win32+MFC混合模式编程,MFC是应该能涵盖W32模式的一切的,为什么要混合? 问题是那个子窗口是以前用mfc开发的,而主窗口也是,现在我把主窗口改成createdialog生成了,以前的子窗口create函数的parent cwnd*我用cwnd::FromHandle(hwnd)变换,程序可以运行,但子窗口的很多消息就不响应了,我想知道原理,为什么会这样 有些消息是从主窗口消息循环中route过来的,你把主窗口改了而保留子窗口,一些消息就可能没法被路由过来。你把一个“模型”的一个部分给改造了,而希望保留另外一个,就可能破坏整个模型,看不出任何理由应该这么作。 有没有什么办法暂时链接一下,让消息流转成功,子窗口我以后也会改成win32开发的。 应该是你的主窗口不具备CWnd类的所有特性。 我估计只能case by case的看每个消息是怎么流转的,你不可能有非常直接的方式直接搞对了。要是我,我宁愿用win32从头开发,研究这个恐怕是非常耗时的。而与Win32相比,更建议的方式使用MFC开发gui,不知道你为什么选择Win32,难道是觉得mfc太难学?估计你弄明白这个也不得不去学MFC了比MFC更先进的估计是wpf了,还不如索性痛苦点,把wpf弄明白去重新开发。用一个老旧的开发模式为模板,用另外一个更老旧的开发模式开发,不一定真的能满足你需求 我也是从mfc转过来的,我要求的是速度和准确的定位,因为我这些程序可能要以dll方式操作的是别人的界面,务求最轻量,我甚至没有考虑atl,所以~~~ 如何用hdc打印格式化的文字和图片啊 各位,帮我看下如下几条语句是否正确 GetTextExtentExPointW和GetTextExTentPoint32W的区别 局域网中如何发指令给别的主机? 如何让CPrintDialog 一打开就选种 数据映射怎样来做?谢谢! !!80分!!征求例程,有没有人在网上看到过网页编辑器的源代码呀? 如何实现象QQ那样的窗口? 是《Windows网络编程技术》在放屁? WIN7 64位如何把屏幕转换成位图, MFC记事本 一个遍历磁盘程序碰到的问题。
而一般情况下WM_NCHITTEST应该只有主窗口需要吧?个人觉得如果是传递给子窗口他应该能被子窗口获得,关键你确定他被传给子窗口了?
WM_LBUTTONUP应该可以传给子窗口,
你把一个“模型”的一个部分给改造了,而希望保留另外一个,就可能破坏整个模型,看不出任何理由应该这么作。
比MFC更先进的估计是wpf了,还不如索性痛苦点,把wpf弄明白去重新开发。用一个老旧的开发模式为模板,用另外一个更老旧的开发模式开发,不一定真的能满足你需求