ダイアログボックスが上手く表示されません

[戻る]
ひな 2004/01/06(火) 20:26:45
環境)WinXP VS.net Version7.0.9086 VC++ SDK
どうしても分からないバグが出てきたので、どなたか御助力お願いします。

DialogBoxParamを使ってダイアログボックスを作ろうと思ったのですが、
作って見ると表示されるダイアログボックスがボタンやリストボックスなどの、
コントロールのみ見えて、大本のダイアログボックス自体やキャプションバーが
見えない物ができてしまいました。

キャプションバーは見えないだけでなく移動なども機能しなくなっていました。
DialogBoxParamの戻り値は1で、OK/CANCELボタンを押せばきちんと機能して、
ダイアログボックスの終了はできました。

ダイアログボックスのリソースはリソースエディタを使い、
Dialogを挿入 を使った時の初期値のままです。
プロパティをいろいろ弄っても上手くいきませんでした。

長くなるので次にソースを書きます。

ひな 2004/01/06(火) 20:28:04
↑の続きでこれがソースです。

#include <windows.h>
#include "resource.h"

BOOL CALLBACK DialogProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);

extern "C" int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR CmdLine, 
int CmdShow)
{
    int a = (int)::DialogBoxParam(hInstance, MAKEINTRESOURCE
(IDD_DIALOG1), NULL, DialogProc, (LPARAM)0);
    
    a = a;
    return 0;
}

BOOL CALLBACK DialogProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    switch(uMsg)
    {
    case WM_COMMAND:
        switch(LOWORD(wParam))
        {
        case IDOK:
            return ::EndDialog(hDlg, IDOK);
        case IDCANCEL:
            return ::EndDialog(hDlg, IDCANCEL);
        }

        break;

    case WM_INITDIALOG:
        return TRUE;
    }

    return TRUE;
}

こんな感じで作りましたがうまくいきません。
どなたかアドバイスお願いいたします。

dairygoods 2004/01/06(火) 21:18:58
DialogProcの説明には、メッセージを処理したらTRUE、
そうでなければFALSEを返しなさいとありますが。

http://msdn.microsoft.com/library/en-us/winui/WinUI/WindowsUserInterface/Windowing/DialogBoxes/DialogBoxReference/DialogBoxFunctions/DialogProc.asp

ひな 2004/01/06(火) 22:12:54
[[解決]]
dairygoodsさんありがとうございました。
初歩的なミスですいませんでした・・・。
勝手にTRUEで脳内補完しておりました。
調べてる時も脳内補完を・・・。すいませんでした。

もっと注意深く調べないといけませんでした。
こんなミスで本当に申し訳ありませんでした。そして、ありがとうございました。

古いスレッドには追加発言できません。