WTLのマクロを使うとクラスビューの表示がおかしくなる – プログラミング – Home

WTLのマクロを使うとクラスビューの表...
 
通知
すべてクリア

[解決済] WTLのマクロを使うとクラスビューの表示がおかしくなる


パキラ
 パキラ
(@パキラ)
ゲスト
結合: 18年前
投稿: 3
Topic starter  

はじめまして。

WindowsXP Pro / VC++ 6.0 SP6
ATL 3.0 / WTL 7.5

この環境で下記のようなコードを書くと、BEGIN_MSG_MAP_EX(...) ~ END_MSG_MAP()の
後に書いてあるOnPaintやOnDestroyといったCTestWndのメンバ関数が、クラスビューでは
なぜかグローバルとして表示されてしまうという問題が発生しています。

atlcrack.hの中で定義されているマクロが認識されていないせいだと思うのですが
(問題のコードの上にatlcrack.hの内容を丸ごとペーストすると、OnPaintやOnDestroyが
CTestWndのメンバ関数として正しく表示されるので)
これを正しく表示させる方法はないのでしょうか?

[ツール]→[オプション]→[ディレクトリ]でディレクトリの順番を入れ替えたりして
みましたが変化はありませんでした。

【問題のコード】
class CTestWnd : public CWindowImpl<CTestWnd>
{

BEGIN_MSG_MAP_EX(CTestWnd)
MSG_WM_PAINT(OnPaint)
MSG_WM_DESTROY(OnDestroy)
END_MSG_MAP()

void OnPaint(HDC hdc)
{
// 中身省略
}

void OnDestroy()
{
// 中身省略
}
};

【念のためstdafx.hの内容も載せておきます】
// Change these values to use different versions
#define WINVER 0x0400
//#define _WIN32_WINNT 0x0400
#define _WIN32_IE 0x0400
#define _RICHEDIT_VER 0x0100

#include <atlbase.h>
#include <atlapp.h>

extern CAppModule _Module;

#include <atlwin.h>

#include <atlframe.h>
#include <atlctrls.h>
#include <atldlgs.h>
#include <atlctrlw.h>
#include <atlcrack.h>


引用未解決
トピックタグ
Sugi
 Sugi
(@Sugi)
ゲスト
結合: 19年前
投稿: 20
 

VS2005ですが、私もこの現象によりIntellisenseが使えなくなるので不便でしたが
参考になりそうな対処法が下記のサイトにあります。
http://haitaoli.blogspot.com/2005/11/wtl-breaks-vs-2005-intellisense.html


返信引用
パキラ
 パキラ
(@パキラ)
ゲスト
結合: 18年前
投稿: 3
Topic starter  

回答ありがとうございます。
教えていただいたサイトの対処法を試してみましたが、VC++ 6.0では
効果がありませんでした。
Googleで「WTL Intellisense」で検索してみたら、同様の問題点を指摘している人が
多くいることがわかったので、もう少し調べてみることにします。


返信引用
Sugi
 Sugi
(@Sugi)
ゲスト
結合: 19年前
投稿: 20
 

VS2005ですとatlwin.hで
#define END_MSG_MAP() \
の定義をatlcrack.hへコピーして
#define END_MSG_MAP_EX() \
という定義を追加し、BEGIN_MSG_MAP_EXの終わりを
END_MSG_MAPでなくEND_MSG_MAP_EXにすることで
とりあえずIntellisenesが解釈するようになりました


返信引用
パキラ
 パキラ
(@パキラ)
ゲスト
結合: 18年前
投稿: 3
Topic starter  

下記のサイトに書いてある方法で上手くいきました。
ありがとうございました。

気まぐれソフトハウス &raquo; VC++6.0でWTLを使った時にClassViewがバグる
http://wind-master.dip.jp/soft-info/item/57


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました