.NET2008でのOnNMDblclkListについて

解決


ラスカル  2008-03-27 15:39:02  No: 67921  IP: [192.*.*.*]

VISTA  MFC  です。

.NET2008を使い始めたのですが、リストビューの管理イベントについて質問します。

リストビューのプロパティの管理イベントから、
OnNMDblclkList
をハンドルすると、

void CmyPage1::OnNMDblclkList1(NMHDR *pNMHDR, LRESULT *pResult)
{
  LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<NMITEMACTIVATE>(pNMHDR); //←●
  // TODO: ここにコントロール通知ハンドラ コードを追加します。
  *pResult = 0;
}

となります。
このままの状態でリビルドすると、
'reinterpret_cast' : 'NMHDR *' から 'NMITEMACTIVATE' に変換できません。
1>        変換にはコンストラクタまたは const_cast または reinterpret_cast で使用不能なユーザー定義変換演算子が必要です。

というエラーになります。
管理イベントをハンドルするだけでエラーになるというのが、とても違和感があります。

2005では、//←●の行がなく、2008でも、この行をコメントアウトすると、ビルドは通ります。

これは、こんなものなのでしょうか。

よろしくお願いします。

編集 削除
アキラ  URL  2008-03-27 15:50:37  No: 67922  IP: [192.*.*.*]

ホントだ

自動生成するコードがコンパイル通らないなんていけませんね。
バグ報告しましょう。
http://www.microsoft.com/japan/msdn/vstudio/feedback/


正しく(コンパイルが通る)コードはこうですね
LPNMITEMACTIVATE pNMItemActivate =
    reinterpret_cast<NMITEMACTIVATE>(pNMHDR);

編集 削除
アキラ  URL  2008-03-27 15:51:43  No: 67923  IP: [192.*.*.*]

間違えました
正しいコードはこっちですね

LPNMITEMACTIVATE pNMItemActivate =
    reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);

編集 削除
アキラ  URL  2008-03-27 16:17:17  No: 67924  IP: [192.*.*.*]

バグ報告しました
https://connect.microsoft.com/VisualStudioJapan/feedback/ViewFeedback.aspx?FeedbackID=334670

編集 削除
ラスカル  2008-03-27 18:02:12  No: 67925  IP: [192.*.*.*]

アキラさん、ありがとうございます。

.NET2005をVISTAで使う時も、バグだらけでひどい、と思いましたが、あんまりだと思います。
バグ報告、ありがとうございました。

新しいものが出ると、すぐ買ってしまうのですが、ちょっと反省、です。

編集 削除
ラスカル  2008-03-27 18:02:43  No: 67926  IP: [192.*.*.*]

解決チェック、忘れました。

編集 削除
アキラ  URL  2008-03-27 20:32:28  No: 67927  IP: [192.*.*.*]

新しいものを早期に導入することはとてもいいことですよ

新しいもの好きの人が早期(たとえばベータ版)から使い込んで
早いうちにバグを見つけて報告すれば製品になるころには直してもらえますし
そういった報告や新製品の情報発信は後に続く人たちのためにもなります

新しいものには怖がらずにどんどんチャレンジしましょう

編集 削除