• 締切済み

ローカル関数についてお願いします

VC++プログラムです ボタン1,2は正常に動いたので割愛させていただきます この文をビルドしたらエラーがでました void CparaparaDlg::OnBnClickedButton3(){ { CPaintDC dc (this); CRect sikaku; GetClientRect (sikaku); int n; CBitmap gazou[2]; int CparaparaDlg::OnCreate(LPCREATESTRUCT lpCreateStruct) { gazou[0].LoadBitmap(IDB_BITMAP1); gazou[1].LoadBitmap(IDB_BITMAP2); n = 1; SetTimer(1, 200, NULL); return 0; } void CparaparaDlg::OnTimer(UINT nIDEvent) { n = n + 1; if(n >= 3){ n = 1; } Invalidate(); if(n == 1){ OnBnClickedButton1(); } else if (n == 2){ OnBnClickedButton2(); } } } error C2601: 'CWnd::OnCreate' : ローカル関数の定義が正しくありません。 c:\Documents and Settings\mizuno\My Documents\Visual Studio error C2601: 'CWnd::OnTimer' : ローカル関数の定義が正しくありません。 というエラーが出ました・・・ どこをどう手直しすればよいのか教えていただける方、お願いします 関数についても教えていただけると幸いです

みんなの回答

noname#25383
noname#25383
回答No.3

「error C2601」や「error C2511」は、よくあるエラーです。 まずは、ヘルプで確認することをお勧めします。 エラーのところにカーソルを持っていって、「F1」キーでヘルプが出ます。

  • yukimican
  • ベストアンサー率70% (112/159)
回答No.2

> 今度は違うエラーが出ました・・・ ヘッダファイルに  int OnCreate(LPCREATESTRUCT lpCreateStruct); が無いからだと思います。 C++の文法は理解していますか?  CparaparaDlg::OnCreate(void)  CparaparaDlg::OnCreate(LPCREATESTRUCT lpCreateStruct) この2つは関数名が同じでも、引数が違うので全く別物です。 なので、ヘッダのクラス定義には両方書かないといけません。

回答No.1

> void CparaparaDlg::OnBnClickedButton3(){ > { 開き中カッコ「{」が2つ書かれています。 それからこの関数の閉じ中カッコ「}」がありません。 写し間違えなら、その旨補足してください。

yu042122
質問者

お礼

ありがとうございます。 直せたのですが。。 今度は違うエラーが出ました・・・ error C2511: 'int CparaparaDlg::OnCreate(LPCREATESTRUCT)' : オーバーロードされたメンバ関数が 'CparaparaDlg' にありません。 使っている場所は メインで int CparaparaDlg::OnCreate(LPCREATESTRUCT lpCreateStruct) { int n; CBitmap gazou[2]; gazou[0].LoadBitmap(IDB_BITMAP1); gazou[1].LoadBitmap(IDB_BITMAP2); n = 1; SetTimer(1, 200, NULL); return 0; } int CparaparaDlg::OnCreate(void) { return 0; } とヘッダファイルは int OnCreate(void);でした

関連するQ&A