ダイアログボックスを表示するには?

解決


MenPin  2010-06-29 05:55:44  No: 71770

ダイアログボックスを表示するテストプログラムを作っているのですが、
実行してもなにも表示されず終了してしまいます。
原因が分からず困っています。どなたか分かる方教えてください。

ソースは
#include <windows.h>
#include "resource.h"

LRESULT CALLBACK DlgProc(HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow)
{
    DialogBox(hInstance, "IDD_DIALOG_LOGIN", NULL, (DLGPROC)DlgProc);
    return 0;
}

LRESULT CALLBACK DlgProc(HWND hDlgWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    switch (msg) {
    case WM_INITDIALOG:
        return FALSE;
    case WM_COMMAND:
        switch (LOWORD(wParam)) {
        case IDC_COMMAND_END:
            EndDialog(hDlgWnd, IDC_COMMAND_END);
            break;
        default:
            return FALSE;
        }
        break;
    default:
        return FALSE;
    }
    return TRUE;
}

よろしくお願いします。m(_ _)m


瀬戸っぷ  2010-06-29 07:47:36  No: 71771

resource.hの中身はどうなっていますか?

DialogBox(hInstance, "IDD_DIALOG_LOGIN", NULL, (DLGPROC)DlgProc);

DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG_LOGIN), NULL, (DLGPROC)DlgProc);
に変えたらどうなりますか?


MenPin  2010-06-29 07:55:47  No: 71772

resource.hの中身は

#ifndef IDC_STATIC
#define IDC_STATIC (-1)
#endif

#define IDD_DIALOG_LOGIN                        101
#define IDC_EDIT_ID                             1001
#define IDC_EDIT_PASS                           1002
#define IDC_COMMAND_NEW                         1003
#define IDC_COMMAND_CONNECT                     1004
#define IDC_COMMAND_END                         1005
です

MAKEINTRESOURCEを使ったら、うまく表示されました。
ありがとうございました。


MenPin  2010-06-29 07:56:52  No: 71773

解決忘れ^^
MAKEINTRESOURCEについてもっと調べてみようと思います。
ありがとうございました。


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

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






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