- - PR -
VC++60MFC:WM_TIMERをvoid CALLBACK TimerProc()で処理したいのですがthisが使えません!
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-03-09 01:41
グローバル宣言内では
this MFCクラスメンバ関数 が使えません。エラーになりました。 //グローバル void CALLBACK TimerProc(HWND hwnd,UINT uMsg,DWORD dwTime) { static int Cnt=0; if(uMsg == WM_TIMER) if(idEvent == 1) { CString msg; CDC* pdc=GetDC();//@ CClientDC dc(this);//A msg.Format("%d ",Cnt++); pdc->TextOut(10,10,msg); dc.TextOut(10,20,msg); } } @error C2660: 'GetDC' : 関数が不正な 0 個の実引数をともなって呼び出されました Aerror C2673: 'TimerProc' : グローバル関数にアクセスするための 'this' ポインタがありません どのように変更すればよろしいのでしょうか? おねがいします! |
|
投稿日時: 2006-03-09 02:21
this は何を指すと思って書いていますか?
グローバル関数では使えませんよね. GetDC で何のデバイスコンテキストを取りたいのか,CClientDC で何のデバイスコンテキストを取りたいのか,何にテキストを書きたいのか,何をしたいのかよくわかりません. とりあえず目的のクラスのメンバにしてみてはどうですか? 以前の投稿でも感じたのですが,MFC をやる前に,C++ と Win32API はある程度知識として持っておかないと,MFC は辛いと思います. _________________ 囚人のジレンマな日々 |
|
投稿日時: 2006-03-29 01:38
解決しました!
static メンバを定義して、それにthisポインタを代入して使用するようにしました。 |
1