我用devc++4.9.9.2写一个对话框程序,点击菜单相应项后弹出对话框,资源文件是自己写的,程序编译通过,但对话框无法显示,请各位帮忙看看是哪里出错?谢谢! 


//资源文件connect.rc
#include <winresrc.h>
#include "res.h"


//菜单
CONNECT  MENU DISCARDABLE
BEGIN
           POPUP   "网络"
           BEGIN
                 MENUITEM   "连接网络",        IDM_NET
                 MENUITEM   "发送信息",        IDM_SENT
           END 
END

//对话框
DIALOG1     DIALOG      DISCARDABLE  32, 32, 180, 100 
STYLE DS_MODALFRAME | WS_POPUP
FONT 9, "宋体"
BEGIN
         DEFPUSHBUTTON        "服务器", IDSEV, 40, 40, 80, 80
         DEFPUSHBUTTON        "客户端", IDCLI, 100, 40, 160, 80 
END 

//res.h
#ifndef RES_H
#define RES_H

#define CONNECT      10001
#define IDM_NET      10002
#define IDM_SENT     10003

#define DIALOG1      20001
#define IDSEV        20002
#define IDCLI        20003



#endif


//connect.cpp
#include <windows.h>
#include <winsock2.H>
#include "res.h"
#include <iostream>
#include <fstream>
using namespace std;

/*  Declare Windows procedure  */
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);

/*  Make the class name into a global variable  */
char szClassName[ ] = "WindowsApp";

int WINAPI WinMain (HINSTANCE hThisInstance,
                    HINSTANCE hPrevInstance,
                    LPSTR lpszArgument,
                    int nFunsterStil)

{
    HWND hwnd;               /* This is the handle for our window */
    MSG messages;            /* Here messages to the application are saved */
    WNDCLASSEX wincl;        /* Data structure for the windowclass */

    /* The Window structure */
    wincl.hInstance = hThisInstance;
    wincl.lpszClassName = szClassName;
    wincl.lpfnWndProc = WindowProcedure;      /* This function is called by windows */
    wincl.style = CS_DBLCLKS;                 /* Catch double-clicks */
    wincl.cbSize = sizeof (WNDCLASSEX);

    /* Use default icon and mouse-pointer */
    wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
    wincl.lpszMenuName = MAKEINTRESOURCE(CONNECT);
                                              /* No menu */
    wincl.cbClsExtra = 0;                      /* No extra bytes after the window class */
    wincl.cbWndExtra = 0;                      /* structure or the window instance */
    /* Use Windows's default color as the background of the window */
    wincl.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);

    /* Register the window class, and if it fails quit the program */
    if (!RegisterClassEx (&wincl))
        return 0;

    /* The class is registered, let's create the program*/
    hwnd = CreateWindowEx (
           0,                   /* Extended possibilites for variation */
           szClassName,         /* Classname */
           "Windows App",       /* Title Text */
           WS_OVERLAPPEDWINDOW, /* default window */
           CW_USEDEFAULT,       /* Windows decides the position */
           CW_USEDEFAULT,       /* where the window ends up on the screen */
           544,                 /* The programs width */
           375,                 /* and height in pixels */
           HWND_DESKTOP,        /* The window is a child-window to desktop */
           NULL,                /* No menu */
           hThisInstance,       /* Program Instance handler */
           NULL                 /* No Window Creation data */
           );

    /* Make the window visible on the screen */
    ShowWindow (hwnd, nFunsterStil);

    /* Run the message loop. It will run until GetMessage() returns 0 */
    while (GetMessage (&messages, NULL, 0, 0))
    {
        /* Translate virtual-key messages into character messages */
        TranslateMessage(&messages);
        /* Send message to WindowProcedure */
        DispatchMessage(&messages);
    }

    /* The program return-value is 0 - The value that PostQuitMessage() gave */
    return messages.wParam;
}

BOOL CALLBACK DIALOG1Proc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
     switch (message)
     {
     case WM_INITDIALOG:
          MessageBox(hDlg, "对话框启动", "启动", MB_OK);
          break;
     case WM_COMMAND:
          switch (LOWORD(wParam))
          {
          case IDSEV:
               MessageBox(hDlg, "服务器按钮", "信息", MB_OK);
               break;
          case IDCLI:
               MessageBox(hDlg, "客户端按钮", "信息", MB_OK);
               break;
          default:
               break;
          } 
     default:
          break;
     }
     return TRUE;

/*  This function is called by the Windows function DispatchMessage()  */

LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    static HINSTANCE hInstance;
    switch (message)                  /* handle the messages */
    {
        case WM_CREATE:
             hInstance = ((LPCREATESTRUCT)lParam)->hInstance;
             break;
        case WM_COMMAND:
             switch (LOWORD(wParam))
             {
             case IDM_NET:
                  if( DialogBox(hInstance, MAKEINTRESOURCE(DIALOG1), hwnd, 
                            DIALOG1Proc) == -1 )
                       {
                            //程序运行后点击菜单的“连接网络”后进入这里,提示错误
                            //myout.txt文件的内容为:“错误代码为:0”
                            MessageBox(hwnd, "对话框启动失败", "信息", MB_OK);
                            DWORD error = GetLastError();
                            ofstream myout("myout.txt");
                            myout<<"错误代码为:"<<error;
                            myout.close();
                       }
                  break;     
             }
             break; 
        case WM_DESTROY:
            PostQuitMessage (0);       /* send a WM_QUIT to the message queue */
            break;
        default:                      /* for messages that we don't deal with */
            return DefWindowProc (hwnd, message, wParam, lParam);
    }

    return 0;
}

//代码完



程序执行后对话框无法显示,错误代码为0 
麻烦各位帮忙看看是哪里出错了?谢谢!