#include <windows.h>BOOL CALLBACK UnDialog(HWND hDlg,UINT message,WPARAM wParam,LPARAM lParam);
char szAppName[] = "Window";
HINSTANCE thishins;
int PASCAL WinMain(HINSTANCE hInstance,      // 应用程序的实例句柄
   HINSTANCE hPrevInstance,  // 该应用程序前一个实例的句柄
   LPSTR lpszCmdLine,        // 命令行参数串
   int nCmdShow)             // 程序在初始化时如何显示窗口
{HWND undialog;
MSG msg;thishins=hInstance; undialog=CreateDialog(thishins,MAKEINTRESOURCE(101),NULL,(DLGPROC)UnDialog);
// 对每个实例,创建一个窗口对象ShowWindow(undialog,nCmdShow);
UpdateWindow(undialog);
while( GetMessage( &msg, NULL, 0, 0 ) )
{if(!IsDialogMessage(undialog,&msg))
{TranslateMessage( &msg );
DispatchMessage( &msg );}
} return msg.wParam;
}BOOL CALLBACK UnDialog(HWND hDlg,
 UINT message,
 WPARAM wParam,
 LPARAM lParam)
{
switch(message)
{case WM_INITDIALOG:return 1;
break;
case WM_COMMAND:
switch (wParam)
{case IDOK:
DestroyWindow(hDlg);}
break;
}
return 0;
}程序没有出错

解决方案 »

  1.   

    #include <windows.h>BOOL CALLBACK UnDialog(HWND,UINT,WPARAM,LPARAM);HINSTANCE thishins = NULL;int PASCAL WinMain(HINSTANCE hInstance,      // 应用程序的实例句柄
    HINSTANCE hPrevInstance, //该应用程序前一个实例的句柄
    LPSTR lpszCmdLine,        // 命令行参数串
    int nCmdShow)             // 程序在初始化时如何显示窗口
    {
    HWND undialog;
    MSG msg; thishins = hInstance; undialog = CreateDialog(thishins,MAKEINTRESOURCE(101),NULL,(DLGPROC)UnDialog);
    // 对每个实例,创建一个窗口对象 ShowWindow(undialog,nCmdShow);
    UpdateWindow(undialog); return 0;
    }BOOL CALLBACK UnDialog(HWND hDlg,
     UINT message,
     WPARAM wParam,
     LPARAM lParam)
    {
    switch(message)
    {
    case WM_INITDIALOG:
    return TRUE; case WM_COMMAND:
    switch (wParam)
    {
    case IDOK:
    DestroyWindow(hDlg);
    break;
    default:
    return FALSE;
    }
    return TRUE;
    } return FALSE;
    }简化成这样吧:)还有一点:undialog = CreateDialog(thishins,MAKEINTRESOURCE(101),NULL,(DLGPROC)UnDialog);你那个 Dialog 模板资源 101 定义好了吗?如果没有,那一定不行:)