.NET2008でのOnNMDblclkListについて

解決


ラスカル  2008-03-28 00:39:02  No: 67921

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-28 00:50:37  No: 67922

ホントだ

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

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


アキラ  URL  2008-03-28 00:51:43  No: 67923

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

LPNMITEMACTIVATE pNMItemActivate =
    reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);


アキラ  URL  2008-03-28 01:17:17  No: 67924

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


ラスカル  2008-03-28 03:02:12  No: 67925

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

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

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


ラスカル  2008-03-28 03:02:43  No: 67926

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


アキラ  URL  2008-03-28 05:32:28  No: 67927

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

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加