平铺与拉伸MDI窗口的背景图 ~!~[1]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 cuizm 的 blog

microsoft visual basic 的mdi窗口虽然可以通过窗口的picture属性设置窗口的背景图,使程序美化了不少。但是图片加载之后当窗口在不同的分辨率下,会出现缺口的现象,比如在800*600下设计的图片,到了1024*768下右边和下边就会出现一块空余(背景色露了出来,非常难看)。并且当窗口的大小被用户改变的时候,图片也会被载断,使原本设计的很漂亮的图片变的“惨不妨睹”;笔者在开发项目的过程中经过摸索,写出了跟 windows 的设置桌面背景比较类似的功能。好东西不敢独享,写出来与大家共同提高。

       作者:崔占民
        email:cuizm@163.com
       2004.6.8

 

以下是程序代码:

option explicit

'mdi窗口代码

'/============================================================================\
'|                             作者:崔占民 2003.6.21                          |
'|                              email:cuizm@163.com                           |
'| 添加一个mdi主窗口,一个普通的窗口,设置为mdi的子窗口(mdichild属性设置为true) |
'| 添加一个模块,用于设置打开文件对话框的api函数及结构                         |
'| 在mdi主窗口中加一个菜单,菜单名为背景,其下添加四项子菜单,分别为:选择背景图, |
'| 默认背景,拉伸与平铺,其代码如下所示                                         |
'|                                                                            |
'\============================================================================/

private sub mdiform_load()
on error resume next
    dim ls_tmp as string
   
    '读取注册的设置,是拉伸还是平铺,然后设置菜单项
    ls_tmp = getsetting("orientzixun", "background", "lashen")
    if ls_tmp = "true" then
        mnupull.checked = true
        mnulay.checked = false
    else
        mnupull.checked = false
        mnulay.checked = true
    end if
end sub

private sub mdiform_resize()
on error resume next
    frmback.setback
    frmback.hide
end sub

'设置缺省图片
private sub mnudefault_click()
    if msgbox("您确定要清除当前背景,而选用默认背景吗?", vbquestion + vbyesno) = vbno then exit sub
    screen.mousepointer = 11
    doevents
   
    savesetting "orientzixun", "background", "pathvalue", ""
    frmback.setback
    frmback.hide
   
    screen.mousepointer = 0
end sub

'平铺背景
private sub mnulay_click()
    mnupull.checked = false
    mnulay.checked = true
    savesetting "orientzixun", "background", "lashen", "false"
    frmback.setback
    frmback.hide
end sub

'拉伸背景
private sub mnupull_click()
    mnupull.checked = true
    mnulay.checked = false
    savesetting "orientzixun", "background", "lashen", "true"
    frmback.setback
    frmback.hide
end sub

'选择背景图片
private sub mnuselback_click()
    on error goto errhandle
    dim fname as string, sname as string, ofname as openfilename
   
    ofname.lstructsize = len(ofname)
    ofname.hwndowner = hwnd
    ofname.hinstance = app.hinstance
    ofname.lpstrfilter = "图片文件" & chr(0) & "*.bmp;*.jpg;*.jpeg;*.gif;*.ico"
    ofname.lpstrfile = space(255) & chr(0)
    ofname.nmaxfile = 256

本文关键:MDI,背景图,平铺,拉伸
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top