powerbuilder 使用picture控件显示 ico

今天使用pb做软件的时候,遇到一个问题,要在界面上显示ico图标。

但是PB没有这样的现成的功能 ,使用picture控件,可以很好的支持各种 jpg,png格式。

就是不能显示ico文件,这可怎么办呢?

我百度了一下,都是一些不明所以然的内容。

看来,还是要使用 api大法实现 ,学过C语言就是好,api就是万能的。

写这个代码在这里做个备忘:

//C语言格式 
			HWND hButton = GetDlgItem(hDlg,IDC_BUTTON1) ; 
			LONG nStyle = GetWindowLong(hButton,GWL_STYLE) ; 
			nStyle = nStyle  | BS_ICON ; 
			SetWindowLong(hButton,GWL_STYLE,nStyle) ; 
			HICON hIcon =(HICON) ::LoadImage(NULL,"c:\\003.ico",IMAGE_ICON ,LR_DEFAULTSIZE,LR_DEFAULTSIZE,LR_LOADFROMFILE );
			SendMessage(hButton,BM_SETIMAGE,IMAGE_ICON,(LONG)hIcon);
//PB代码
    long hButton ; 
	hButton = handle(p_1);  
	api.SetWindowLong(hButton,-16,1342242880)  ; 
	long hIcon  ; 
	hIcon = api.LoadImage(0,"c:\\003.ico",1 ,32,32,16 );
	p_1.width = pixtox(32);
	p_1.height = pixtoy(32);
	send(hButton,247,1, hIcon);
	

说明:

powerbuilder 中的picture控件,其实就是一个BS_OWNER风格的自绘按钮。

通过setwindowlong函数修改按钮的style,

并添加一个BS_ICON风格,这样就变成可以显示图标的按钮了。

很简单。是不是。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值