标题:windows编程 奇怪的图片显示问题
取消只看楼主
死亡军团
Rank: 2
等 级:论坛游民
威 望:2
帖 子:166
专家分:20
注 册:2008-11-4
结帖率:100%
已结贴  问题点数:20 回复次数:5 
windows编程 奇怪的图片显示问题
我想显示一张图片,以下代码编译没错,在vc下生成的程序也没问题,可以达到显示图片的功能,但是就是在Debug文件夹的exe软件不能显示那张图片,为什么会出现这个问题呢?               如果可以的话,请附上一个最简单的以图片作为背景的代码```````````````先谢谢各位了~~~~~


#include "windows.h"
#include "resource.h"
#include <string.h>
//窗口函数的函数原形

LRESULT CALLBACK MainWndProc(HWND,UINT,WPARAM,LPARAM);
HWND hwnd;



int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)

{  MSG msg;
   char szClassName[]="MainWClass";
   WNDCLASSEX wndclass;
   
   //用描述主窗口的参数填充WNDCLASSEX结构

   wndclass.cbSize       =sizeof(wndclass);                    //  结构体大小
   wndclass.style        =CS_HREDRAW|CS_VREDRAW;               //  指定如果大小改变就重画
   wndclass.lpfnWndProc  =MainWndProc;                         //  窗口函数指针
   wndclass.cbClsExtra   =0;                                   //  没有额外的类内存
   wndclass.cbWndExtra   =0;                                   //  没有额外的窗口内存
   wndclass.hInstance    =hInstance;                           //  实例句柄
   wndclass.hIcon        =NULL;//LoadIcon(hInstance,(LPSTR)IDI_ICON1);      //  使用预定义图标
   wndclass.hCursor      =LoadCursor(NULL,IDC_ARROW);          //  使用预定义光标
   wndclass.hbrBackground=(HBRUSH)GetStockObject(16); //  使用白色背景画刷
   wndclass.lpszMenuName =NULL;//(LPSTR)IDR_TYPER;                                //  不指定菜单
   wndclass.lpszClassName=szClassName;                         //  窗口类的名称
   wndclass.hIconSm      =NULL;                                //  没有类的小图标

   //注册窗口类

   RegisterClassEx(&wndclass);

   //创建主窗口
   
  hwnd=CreateWindow(
                             szClassName,
                  "香薰恋人",
             WS_OVERLAPPEDWINDOW,//WS_DISABLED,
              600,//CW_USEDEFAULT,
              400,//CW_USEDEFAULT,
              300,//CW_USEDEFAULT,
              300,//CW_USEDEFAULT,
              NULL,
              NULL,
              hInstance,
              NULL,
            );


   if(hwnd==NULL)
   {
       MessageBox(NULL,"创建窗口出错!","error",MB_OK);
       return -1;
   }
   
   //显示窗口,刷新窗口客户区


   ShowWindow (hwnd,nCmdShow);
   UpdateWindow(hwnd);

   //从消息队列中取得消息,交给窗口函数处理,直到GetMessage 返回FALSE ,结束消息循环

   SetWindowPos(hwnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOREDRAW|SWP_NOSIZE);

   while(GetMessage(&msg,NULL,0,0))
   {
      //转化键盘消息
       TranslateMessage(&msg);
      //将消息发送到相应的窗口函数
       DispatchMessage(&msg);
   }
   
   //当GetMessage返回FALSE 时结束函数

   return msg.wParam;

}

LRESULT CALLBACK MainWndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
    switch (message)
  {
  case WM_PAINT:
      {
    PAINTSTRUCT ps;
    HDC hdc;
    HBITMAP hbmp;
    BITMAP bmp;
    HDC hdcMem;  

    hdc = BeginPaint(hwnd, &ps);
  
    hdcMem  = CreateCompatibleDC(hdc);
    hbmp = (HBITMAP)LoadImage(NULL, ("11.bmp"), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE|LR_CREATEDIBSECTION);
    GetObject(hbmp, sizeof(BITMAP), &bmp);

    SelectObject(hdcMem, hbmp);
    BitBlt(hdc, 0, 0, bmp.bmWidth, bmp.bmHeight, hdcMem, 0, 0, SRCCOPY);

    DeleteDC(hdcMem);
    //DeleteObject(hbmp);
    EndPaint(hwnd, &ps);

        
        break;
          

      }
    
  case WM_DESTROY:  //正在销毁窗口
                    //向消息队列投递一个WM_OUIT 消息,促使GetMessage 函数返回0,结束消息循环
      PostQuitMessage(0);
      return 0;
      break;
  
}
   //将我们不处理的消息交给系统做默认处理

  return DefWindowProc(hwnd,message,wParam,lParam);


}
搜索更多相关主题的帖子: windows编程 显示图片 代码 背景 
2009-08-25 11:13
死亡军团
Rank: 2
等 级:论坛游民
威 望:2
帖 子:166
专家分:20
注 册:2008-11-4
得分:0 
但我已经导入了那张图片了,也不行的吗??那要怎么样才可以使exe跟11.bmp就算不在同一个目录也可以显示呢??
2009-08-25 20:07
死亡军团
Rank: 2
等 级:论坛游民
威 望:2
帖 子:166
专家分:20
注 册:2008-11-4
得分:0 
回复 4楼 东海一鱼
我上网查过了,也试过了,还是不会修改,,如果hinst为非空的话,那应该填什么呢? 那个lpszName 是不是ID号呢??麻烦你帮我修改一下,最好的话就带点必要的解析,方便我们初学者学学嘛~~~~先谢谢您了~~~
2009-08-25 23:18
死亡军团
Rank: 2
等 级:论坛游民
威 望:2
帖 子:166
专家分:20
注 册:2008-11-4
得分:0 
但是我要的是把exe发到别人的机子里那是也可以显示的,,所以六楼的方法应该不行的吧~~~
2009-08-26 10:29
死亡军团
Rank: 2
等 级:论坛游民
威 望:2
帖 子:166
专家分:20
注 册:2008-11-4
得分:0 
回复 9楼 flyue
这个我就不知道了,我是在网上找古典美女那时看到的,觉得挺漂亮的~~~
2009-08-26 11:06
死亡军团
Rank: 2
等 级:论坛游民
威 望:2
帖 子:166
专家分:20
注 册:2008-11-4
得分:0 
我已经把它做成资源了,但是还是不会用,谁可以在我给出的代码里修改好直接发上来呢???这几天我已经为了搞这个问题而接近崩毁的边缘了,神啊,救救我吧!!!先谢谢各位了~~~~
2009-08-26 17:07



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-283644-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027659 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved