[问题] VS2010 VS2005 结果不同

楼主: poiuy777 (帅气又拉风)   2014-11-14 21:33:37
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++
问题(Question):
我负责一段code 要VS2005与VS2010同时都能支援
是要当SDK的Sample code 这段code是一个GUI的接口
当中有发现一个问题
若用VS2005 compile出来是完全没问题 功能也正常
但如果用VS2010 compile出来时 底层GUI元件送出的SendMessage讯息
上层的Dialog会收不到 不管是左键或右键的事件都一样
这份code中除了sln不一样之外 其它所有东西都一样 且共用
在compile是没有错误的 而且其他功能都正常 唯独SendMessage错误
用中断点看时 是下方程式码的回传值不同所导致
再用spy++去检查时 发现好像是GetDlgCtrlID()个API在VS2010失去功能
不知道各位先进有没有遇过类似状况 可以帮小弟我解答一下
预期的正确结果(Expected Output):
spy++对照图 http://i.imgur.com/3kV3tf8.png
VS2005是正确结果 VS2010是错误结果
程式码(Code):(请善用置底文网页, 记得排版)
CWnd *pWnd = GetParent();
if (pWnd)
{
return (BOOL) (pWnd->SendMessage(WM_NOTIFY,
GetDlgCtrlID(),
(LPARAM) lpnmrv));
}
补充说明(Supplement):
VS2005 return TRUE
VS2010 return FALSE
且在最上层的Dlg会收不到 ON_NOTIFY 的事件

Links booklink

Contact Us: admin [ a t ] ucptt.com