窗口处理控件技巧大全

作者:小菜 更新时间:2025-02-25 点击数:
简介:一下例子中可能用到的api声明和常量、变量声明private declare function getwindowlong lib “user32″ alias

【菜科解读】

一下例子中可能用到的api声明和常量、变量声明private declare function getwindowlong lib “user32″ alias “getwindowlonga” (byval hwnd as long, byval nindex as long) as longprivate declare function setwindowlong lib “user32″ alias “setwindowlonga” (byval hwnd as long, byval nindex as long, byval dwnewlong as long) as longprivate declare function setwindowpos lib “user32″ (byval hwnd as long, byval hwndinsertafter as long, byval x as long, byval y as long, byval cx as long, byval cy as long, byval wflags as long) as longprivate const swp_nosize = &h1private const swp_nozorder = &h4private const swp_nomove = &h2private const swp_drawframe = &h20private const gwl_style = (-16)private const ws_thickframe = &h40000private const ws_dlgframe = &h400000private const ws_popup = &h80000000private const ws_caption = &hc00000private const ws_sysmenu = &h80000private const ws_minimizebox = &h20000private const ws_maximizebox = &h10000private const ws_minimize = &h20000000private const ws_maximize = &h1000000——————————————————————————–例子一:任何一个控件(只要有窗口,这是我们的前提,下同),你可以在运行时随便更改它的大小。

private sub controlsize(controlname as control, settrue as boolean)dim dwstyle as longdwstyle = getwindowlong(controlname.hwnd, gwl_style)if settrue thendwstyle = dwstyle or ws_thickframeelsedwstyle = dwstyle – ws_thickframeend ifdwstyle = setwindowlong(controlname.hwnd, gwl_style, dwstyle)setwindowpos controlname.hwnd, controlname.parent.hwnd, 0, 0, 0, 0, swp_nozorder or swp_nosize or swp_nomove or swp_drawframeend sub用法:controlsize picture1,true;设置第二个参数为false取消这种设置,下同——————————————————————————–例子二:任何一个控件,我们都可以控制其显示风格为对话框的风格。

private sub controldialog(controlname as control, settrue as boolean)dim dwstyle as longdwstyle = getwindowlong(controlname.hwnd, gwl_style)if settrue thendwstyle = dwstyle or ws_dlgframeelsedwstyle = dwstyle – ws_dlgframeend ifdwstyle = setwindowlong(controlname.hwnd, gwl_style, dwstyle)setwindowpos controlname.hwnd, controlname.parent.hwnd, 0, 0, 0, 0, swp_nozorder or swp_nosize or swp_nomove or swp_drawframeend sub用法:controlsize picture1,true——————————————————————————–例子三:任何一个控件,我们都可以控制其显示风格为模式对话框的风格private sub controlmodal(controlname as control, settrue as boolean)dim dwstyle as longdwstyle = getwindowlong(controlname.hwnd, gwl_style)if settrue thendwstyle = dwstyle or ws_popupelsedwstyle = dwstyle – ws_popupend ifdwstyle = setwindowlong(controlname.hwnd, gwl_style, dwstyle)setwindowpos controlname.hwnd, controlname.parent.hwnd, 0, 0, 0, 0, swp_nozorder or swp_nosize or swp_nomove or swp_drawframeend sub用法:controlmodal picture1,true——————————————————————————–例子四:任何一个控件,我们都可以给它加上标题栏,通过拖动标题栏,可以实现控件的运行时移动。

private sub controlcaption(controlname as control, settrue as boolean) dim dwstyle as longdwstyle = getwindowlong(controlname.hwnd, gwl_style)if settrue thendwstyle = dwstyle or ws_captionelsedwstyle = dwstyle – ws_captionend ifdwstyle = setwindowlong(controlname.hwnd, gwl_style, dwstyle)setwindowpos controlname.hwnd, controlname.parent.hwnd, 0, 0, 0, 0, swp_nozorder or swp_nosize or swp_nomove or swp_drawframeend sub用法:controlcaption picture1,true——————————————————————————–例子五:任何一个控件,我们都可以给它加上controlbox(所谓controlbox,就是窗体的图标+最小化+最大化+关闭按钮)。

private sub controlsysmenu(controlname as control, settrue as boolean)dim dwstyle as longdwstyle = getwindowlong(controlname.hwnd, gwl_style)if settrue thendwstyle = dwstyle or ws_sysmenuelsedwstyle = dwstyle – ws_sysmenuend ifdwstyle = setwindowlong(controlname.hwnd, gwl_style, dwstyle)setwindowpos controlname.hwnd, controlname.parent.hwnd, 0, 0, 0, 0, swp_nozorder or swp_nosize or swp_nomove or swp_drawframeend sub用法:controlcaption picture1,true:controlsysmenu picture1,true 窗口,处理,控件,技巧,大全,一下,例子,中,可能,

加入收藏
               

窗口处理控件技巧大全

点击下载文档

格式为doc格式

  • 账号登录
社交账号登录