运行可执行文件,可没有响应怎么回事?
下面是Windows程序设计,建立窗口,编译,生成可执行文件都没错,可是运行的时候没响应。求解?有人说链接错误,但是个人还没解决默认连接中,已经将多媒体库链接进去了。
#include<windows.h>
LRESULT CALLBACK WndProc( HWND, UINT, WPARAM, LPARAM );
int WINAPI WinMain(
HINSTANCE hInstance, // handle to current instance
HINSTANCE hPrevInstance, // handle to previous instance
LPSTR lpCmdLine, // command line
int iCmdShow // show state
)
{
HWND hwnd;
MSG msg;
WNDCLASS wndclass;
static TCHAR szAppName[] = TEXT( "HelloWin" ); // name of window class
//windows class
wndclass.style = CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc = WndProc;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.hInstance = hInstance;
wndclass.hIcon = LoadIcon( NULL, IDI_APPLICATION );
wndclass.hCursor = LoadCursor( NULL, IDC_ARROW );
wndclass.hbrBackground = ( HBRUSH )GetStockObject( WHITE_BRUSH );
wndclass.lpszClassName = szAppName;
//注册一个窗口:
if( !RegisterClass( &wndclass ) )
{
MessageBox( NULL, TEXT( "This program requires windows NT!" ), szAppName, MB_ICONERROR );
return 0;
}
//创建一个窗口
hwnd = CreateWindow( szAppName,
TEXT( "The Hello Program" ),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL
);
ShowWindow( hwnd, iCmdShow ); //iCmdShow表示窗口最初显示方式
UpdateWindow( hwnd );
while( GetMessage( &msg, NULL, 0, 0 ) )
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
return msg.wParam;
}
LRESULT CALLBACK WndProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam )
{
HDC hdc;
PAINTSTRUCT ps;
RECT rect;
switch( message )
{
case WM_CREATE:
PlaySound( TEXT( "HelloWin.wav" ), NULL, SND_FILENAME | SND_ASYNC );
return 0;
case WM_PAINT:
hdc = BeginPaint( hwnd, &ps );
GetClientRect( hwnd, &rect );
DrawText( hdc, TEXT( "Hello, Windows 98!" ), -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER );
EndPaint( hwnd, &ps );
return 0;
case WM_DESTROY:
PostQuitMessage( 0 );
return 0;
}
return DefWindowProc( hwnd, message, wParam, lParam );
}