显示BMP可以,显示其他的图片格式就难了。

解决方案 »

  1.   

    只要知道文件格式都可以。
    Bmp\Jpeg\Gif相对较简单。
      

  2.   

    to z_jingxin:简单吗,我的要求就是要显示bmp/jpeg/gif,给我原代码吗?谢谢
    to gxdq:对于c,一窍不通!以后学吧!
    to Kingron:可以吗?给我原代码!谢谢
      

  3.   

    可以,在开发中心里面有关于只使用API函数建立包含窗体的程序,里面有我一篇。
    你可以把bmp文件放到res中,将res加到工程里。然后再通过API函数获得res中的
    bmp资源。
      

  4.   

    to TechnoFantasy:能给我下载网址吗?
      

  5.   

    代码:program Project2;uses
      Windows;
    const
      AppName = 'Windows';
      WM_DESTROY = 2;
      WM_LBUTTONUP = 514;
    {$R *.RES}//窗口处理函数
    function WindowProc(Window:Hwnd;Amessage,wParam,
             lParam:LongInt):LongInt;stdcall;export;
    begin
      WindowProc:=0;  case AMessage of
        WM_DESTROY:
        begin
          PostQuitmessage(0);
          Exit;
        end;
        WM_LBUTTONUP:
        begin
          PostQuitmessage(0);
          Exit;
        end;
      end;  WindowProc := DefWindowProc(Window,AMessage,wParam,lParam);
    end;//注册窗口函数
    function WinRegister:Boolean;
    var
      WindowClass:TWndClass;
    begin
      WindowClass.style := cs_hredraw or cs_vRedraw or cs_NoClose;
      WindowClass.lpfnWndProc := @WindowProc;
      WindowClass.cbClsExtra := 0;
      WindowClass.cbWndExtra := 0;
      WindowClass.hInstance := Hinstance;
      WindowClass.hIcon := LoadIcon(0,idi_Application);
      WindowClass.hCursor := LoadCursor(0,idc_Arrow);
      WindowClass.hbrBackground := HBrush(COLOR_BTNFACE);
      WindowClass.lpszMenuName := nil;
      WindowClass.lpszClassName := AppName;  Result:=RegisterClass(WindowClass)<>0;
    end;//建立工具栏窗口函数
    function WinCreate:HWnd;
    var
      hWindow:Hwnd;
      pcharTemp:PChar;
    begin
      hWindow:=CreateWindowEx(WS_EX_RTLREADING or WS_EX_TOOLWINDOW,
          AppName,'Samples Window',ws_OverlappedWindow,
          cw_UseDefault,cw_UseDefault,cw_UseDefault,cw_UseDefault,0,0,
          Hinstance,nil);
      if hWindow<>0 then
      begin
        pcharTemp:='Samples';
        ShowWindow(hWindow,cmdShow);
        TextOut(GetWindowDC(hWindow),10,50,pcharTemp,7);
        UpdateWindow(hWindow);
      end;  Result:=hWindow;
    end;var
      AMessage:TMsg;
      hWindow:HWnd;
    begin //主程序部分
      if not WinRegister then
      begin
        MessageBox(0,'窗口注册失败',nil,mb_ok);
        Exit;
      end;
      hWindow:=WinCreate;
      if hWindow=0 then
      begin
        MessageBox(0,'建立窗口失败',nil,mb_ok);
        Exit;
      end;
      While GetMessage(AMessage,0,0,0)do
      begin
        TranslateMessage(AMessage);
        DispatchMessage(AMessage);
      end;
      Halt(AMessage.wParam);
    end.
        将上面的内容以 Project2.dpr 为文件名保存到Delphi的Bin目录中,然后使用
    Delphi中的DCC32来编译工程文件,具体的使用方法是:DCC32 Project2.dpr 。
    在编译过程中可能有一些警告(Warning)消息,不要理会。编译完成后,在Bin目录
    下会产生一个Project2.exe的文件,在我的机器上编译出来的程序只有17K左右这个是以前我利用Delphi 4写的,至于图片的部分,你可以自己在研究一下。
      

  6.   

    有OOP不用,用API,愚昧!文件小?你的硬盘是10M的?286 PC?那就回到DOS吧,别用GUI。
      

  7.   

    to lin:oop是什么啊??
    我说文件小,并不是说机器差。
    一个1M的程序能打印‘hello!world'
    一个10K的程序也能打印‘hello!world'
    你说哪个好?呵呵,白痴也知道!
      

  8.   

    LoadBitmap() & BitBlt() API
      

  9.   

    一个1M的程序能显示位图
    一个10K的程序也能显示位图
    1M的只要几行代码,简单的基础知识
    10K的却要几百行代码,对Windows和图形编程的深刻理解
    硬盘内存都不愁的情况下
    你说哪个好?
    前者生产力高,后者有利与基础的学习。
    真的想打基础,还是从C开始好。