[問題] 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