首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于C显示无法显示类图的有关问题

2013-12-10 
关于C显示无法显示类图的问题以下是主函数#include windows.h#include easyx.h#include conio.h#inc

关于C显示无法显示类图的问题
以下是主函数
#include <windows.h>
#include <easyx.h>
#include <conio.h>
#include <tchar.h>
#include "bitmap.h"
#pragma comment(lib, "winmm.lib")

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);//窗口函数说明
HINSTANCE hInst;
//以下入口函数
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
WNDCLASSEX wcex;
HWND hWnd;
MSG msg;
TCHAR szWindowClass[]="窗口实例";//窗口类名
TCHAR szTitle[]="Cong's Windows";//窗口标题名
hInst=hInstance;
//以下初始化窗体类
wcex.cbSize=sizeof(WNDCLASSEX);//窗口类的大小
wcex.style=CS_HREDRAW|CS_VREDRAW;//窗口类型为默认类型
wcex.lpfnWndProc=WndProc;//窗口处理函数为WndProc
wcex.cbClsExtra=0;//窗口类无拓展
wcex.cbWndExtra=0;//窗口实例无拓展
wcex.hInstance=hInstance;//当前实例句柄
wcex.hIcon=LoadIcon(hInstance,MAKEINTRESOURCE(IDI_APPLICATION));
//窗口的图标为默认类型
wcex.hCursor=LoadCursor(NULL,IDC_ARROW);//窗口采用箭头光标
wcex.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
//窗口背景白色
wcex.lpszMenuName=NULL;//窗口中无菜单
wcex.lpszClassName=szWindowClass;//窗口类名为“窗口示例”
wcex.hIconSm=LoadIcon(wcex.hInstance,MAKEINTRESOURCE(IDI_APPLICATION));
//窗口的小图标为默认图标
//以下进行窗口类的注册
if (!RegisterClassEx(&wcex))//如果注册失败则发出警告
{
MessageBox(NULL,_T("窗口类注册失败!"),_T("窗口注册"),NULL);
}
//以下创建窗口
hWnd=CreateWindow(
szWindowClass,//窗口类名
szTitle,//窗口实例的标题名
WS_OVERLAPPEDWINDOW,//窗口的风格
CW_USEDEFAULT,CW_USEDEFAULT,//窗口左上角左边为默认值
800,600,//窗口的高和宽为默认值
NULL,//此窗口无父菜单
NULL,//此窗口无主菜单
hInstance,//创建此窗口应用程序的当前句柄
NULL//不使用该值
);
if (!hWnd)//如果创建窗口失败则发出警告
{
MessageBox(NULL,"创建窗口失败!",_T("创建窗口"),NULL);
return 1;
}
ShowWindow(hWnd,nCmdShow);//显示窗口
UpdateWindow(hWnd);//绘制用户区
while (GetMessage(&msg,NULL,0,0))//消息循环
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (int)msg.wParam;//程序终止时将信息返回系统
}


//以下是窗口函数的代码
LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
HDC hDC;//定义指向设备的句柄
PAINTSTRUCT ps;
RECT rect;
static BITMAP bitmap;
    static HDC hMenDC;
static HBITMAP hBm;//位图句柄
    static int x,y;
char *str1="按下ENTER键开始";      //进入游戏提示
static int gamestart=0;            //游戏状态
switch(message)
{
case WM_CREATE:

hDC=GetDC(hWnd);
GetClientRect(hWnd,&rect);
x=rect.right/2;
y=rect.bottom/2;
hMenDC=CreateCompatibleDC(hDC);
hBm=LoadBitmap(hInst,MAKEINTRESOURCE(IDB_BITMAP));
SelectObject(hMenDC,hBm);
GetObject(hBm,sizeof(BITMAP),&bitmap);
ReleaseDC(hWnd,hDC);
break;
case WM_SIZE:
InvalidateRect(hWnd,NULL,1);
break;
case WM_KEYDOWN:
switch(wParam)
{
case VK_RETURN:
gamestart=1;
InvalidateRect(hWnd,NULL,1);
break;
default:
break;
}
break;
case WM_KEYUP:
InvalidateRect(hWnd,NULL,1);
case WM_PAINT:
if(gamestart==0)
{
hDC=BeginPaint(hWnd,&ps);
TextOut(hDC,500,300,str1,strlen(str1));
break;
}
if(gamestart==1)
{

hDC=BeginPaint(hWnd,&ps);
BitBlt(hDC,x,y,bitmap.bmWidth,bitmap.bmHeight,hMenDC,0,0,SRCCOPY);
EndPaint(hWnd,&ps);
mciSendString(_T("open 112.mp3 alias file"), NULL, 0, NULL);
mciSendString(_T("play file"), NULL, 0, NULL);
break;
}
case WM_DESTROY:
PostQuitMessage(0);//调用PostQuitMessage发出WM_QUIT消息
break;
default:
return DefWindowProc(hWnd,message,wParam,lParam);
//默认时采用系统消息默认处理函数
break;
}
return 0;
}





bitmp.h:
#define IDB_BITMAP 101


窗口打开后,能显示“按enter键开始”,按下回车后,音乐会播放,但是位图无法显示,之前编译会报错,百度查了一下把 工程->设置->连接 中的工程选项中的subsystem:console 改为了subsystem:windows,编译不报错了,但是位图没法显示,求大神解答!!!!!


[解决办法]
资源IDB_BITMAP丢失或格式错误。

热点排行