- ベストアンサー
VC++2005での警告について教えてください
よろしくお願いします。 vc++2005を使ってコンパイルした時、プログラムの『691行目と、689行目』の所に緑色の(∥チェック)が付いていて、次のような警告が出たのですが、 これは、『記述する場所が間違っている』と解釈して良いでしょうか? ------ ビルド開始: プロジェクト: memo, 構成: Release Win32 ------ コンパイルしています... c:\memo\memo\memo.cpp(691) : warning C4715: 'NewProc' : 値を返さないコントロール パスがあります。 コード生成が終了しました。 マニフェストを埋め込んでいます... ビルドログは "file://c:\Visual Studio 2005\Projects\memo\memo\Release\BuildLog.htm" に保存されました。 memo - エラー 0、警告 21 ========== ビルド: 1 正常終了、0 失敗、0 更新、0 スキップ ========== //サブクラス化後のプロシージャ LRESULT CALLBACK NewProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { POINT pt; static HMENU hMenu; static HMENU hSubMenu; int id; switch (msg){ case WM_RBUTTONDOWN: //ポップアップメニューを作る hMenu = LoadMenu(hInst, "MYMENU2"); hSubMenu = GetSubMenu(hMenu, 0); pt.x = LOWORD(lp); pt.y = HIWORD(lp); ClientToScreen(hWnd, &pt); TrackPopupMenu(hSubMenu, TPM_LEFTALIGN, pt.x, pt.y, 0, hWnd, NULL); DestroyMenu(hMenu); break; case WM_COMMAND: switch (LOWORD(wp)){ case IDM_NEW: MyNew(hWnd); break; /*case IDM_SAVE: MySave(hWnd); break;*/ case IDM_SAVEAS: MySaveAs(hWnd); break; case IDM_OPEN: MyOpen(hWnd); break; case IDM_END: if(SendMessage(hWnd, EM_GETMODIFY, 0, 0) == FALSE){ id = MessageBox(hWnd, TEXT("終了してもいいですか"), TEXT("確認"), MB_YESNO | MB_ICONQUESTION); if(id == IDYES){ DestroyWindow(hWnd); PostQuitMessage(0); } } if(SendMessage(hWnd, EM_GETMODIFY, 0, 0) == TRUE){ id = MessageBox(hWnd, TEXT("文書が更新されています、\n変更を保存しますか?"), TEXT("メモ帳"), MB_YESNOCANCEL | MB_ICONEXCLAMATION); if(id == IDYES){ MySave(hWnd); //MySaveAs(hWnd); }else if (id == IDCANCEL){ return IDCANCEL; }/*else if (id ==IDNO){ *///ここを記述すると //文書保存ダイアログでキャンセルした時に、『終了しない』 id = MessageBox(hWnd, TEXT("終了してもいいですか"), TEXT("確認"), MB_YESNO | MB_ICONQUESTION); if(id == IDYES){ DestroyWindow(hWnd); PostQuitMessage(0); } } } break; default: 689行目 return CallWindowProc(OldProc, hWnd, msg, wp, lp); } 691 行目 }
- みんなの回答 (2)
- 専門家の回答
お礼
丁寧なアドバイス有難うございます。 色々と試していたため、御礼が遅れてしまいました。 無事に警告を消すことが出来ました。プログラム的には、まだ完成してはいないのですが、これで先に進むことが出来ます。