显示BMP可以,显示其他的图片格式就难了。
解决方案 »
- Delphi中ADO操作数据,不想有数据可视化界面怎么办?(新手)
- 大家过来看看循环生存下拉菜单的问题
- 讨论 "据说是微软的考题(出自<<世界500强试题>>)"
- 记得有一个API的函数可以使edit中只能输入整数,可惜忘了,谁知道!!
- 请问如何生成这样一组数据?
- Delphi对数据库访问时如何对图形字段进行插入、修改,用Sql来实现。
- 请教Dll中的窗体或其它控件如何融合到当前程序中
- Delphi6 中使用dbexpress连接MySql数据库的问题!
- WebBrowser1 取里面的内容的一个问题
- 控件继承问题--新手(伴水)
- 图片压缩还是格式转换
- prodax 数据库 commit 不成功
Bmp\Jpeg\Gif相对较简单。
to gxdq:对于c,一窍不通!以后学吧!
to Kingron:可以吗?给我原代码!谢谢
你可以把bmp文件放到res中,将res加到工程里。然后再通过API函数获得res中的
bmp资源。
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写的,至于图片的部分,你可以自己在研究一下。
我说文件小,并不是说机器差。
一个1M的程序能打印‘hello!world'
一个10K的程序也能打印‘hello!world'
你说哪个好?呵呵,白痴也知道!
一个10K的程序也能显示位图
1M的只要几行代码,简单的基础知识
10K的却要几百行代码,对Windows和图形编程的深刻理解
硬盘内存都不愁的情况下
你说哪个好?
前者生产力高,后者有利与基础的学习。
真的想打基础,还是从C开始好。