找回密码
 加入
搜索
查看: 4609|回复: 13

[GUI管理] 关于 对话框

  [复制链接]
发表于 2015-6-1 14:54:29 | 显示全部楼层 |阅读模式
一般软件都有一个 关于 对话框, 右键点击对话框 只有 “移动” 和“关闭” 2个选项。而且没有图标。就好比MSGBOX 一样。谁能做到!!!!
发表于 2015-6-1 19:58:56 | 显示全部楼层
回复 1# macran
是这样?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2015-6-2 06:35:55 | 显示全部楼层
自已搞GUI界面就可以了!
 楼主| 发表于 2015-6-2 09:28:48 | 显示全部楼层
回复 2# chzj589


    你右键点击标题栏 只有 “移动”和“关闭” 吗?
 楼主| 发表于 2015-6-2 09:28:59 | 显示全部楼层
回复 2# chzj589


    你右键点击标题栏 只有 “移动”和“关闭” 吗?
 楼主| 发表于 2015-6-2 09:42:33 | 显示全部楼层
我也可以做出这样的,但首先 有一个图标,跟别人的关于对话框 不一样,其次,右键标题栏,有很多选项,尽管只有移动和关闭是可用,其他是禁用项,但也和别人的右键菜单只有移动和关闭 不一样。好像GUI只能做窗口调用的是CreateWindowEX,而模态对话框调用的API是DialogBox,谁如果会用DLLCALL 估计可以做到。
MFC 中对应 Domodal()
发表于 2015-6-2 11:40:45 | 显示全部楼层
回复 6# macran
这样你试试
;------------------------------------------------------------

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
Global $Form1, $menu_C2, $GroupBox1, $Label
GUI_D()
While 1
        Sleep(10)
WEnd
Func GUI_D()
        ;$Form2 = GUICreate("关于",  Default, Default, 305, 155, Bitor($WS_CAPTION,$WS_SYSMENU))
        $Form1 = GUICreate("", 320, 180, 302, 218, BitOR($WS_CAPTION, $WS_SYSMENU))
        GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")       
        $GroupBox1 = GUICtrlCreateGroup("", 8, 8, 305, 155)
        $Label = GUICtrlCreateLabel("", 16, 16, 290, 140)
        $menu_C = GUICtrlCreateContextMenu($Label);创建上下文菜单(右键)
        $menu_C1 = GUICtrlCreateMenuItem("移动", $menu_C);创建一个菜单项目控件
        $menu_C2 = GUICtrlCreateMenuItem("关闭", $menu_C);创建一个菜单项目控件
        GUICtrlSetOnEvent($menu_C2, "_menu_C2")
        $Label2 = GUICtrlCreateLabel("版本", 16, 48, 28, 17)
        $Label4 = GUICtrlCreateLabel("备注", 16, 78, 28, 17)
        $Label3 = GUICtrlCreateLabel("版权", 16, 108, 28, 17)
        GUICtrlCreateGroup("", -99, -99, 1, 1)
        ;$Button2 = GUICtrlCreateButton("移动", 84, 180, 75, 25, 0);移动” 和“关闭”
        ;$Button3 = GUICtrlCreateButton("关闭", 184, 180, 75, 25, 0)
        GUISetState(@SW_SHOW)
        #EndRegion ### END Koda GUI section ###
EndFunc   ;==>GUI_D
Func Form1Close()
        Exit
EndFunc   ;==>Form1Close
Func _menu_C2()
        Exit
EndFunc   ;==>_menu_C2
发表于 2015-6-3 05:52:33 | 显示全部楼层
本帖最后由 netegg 于 2015-6-3 05:54 编辑

api好像可以做吧
看看aboutdlg
 楼主| 发表于 2015-6-4 11:21:08 | 显示全部楼层
谢谢7楼的兄弟,不过你理解错我的意思了,其实我就想实现一个像 MSGBOX一样。没有ICON,右键点击标题栏(不是点击窗口内部)只出现移动和关闭菜单。其实很多软件的关于对话框都是这样的。但AUTOIT没有直接的内建函数。估计需要用到DLL 调用操作系统的API 才可以。类似于蛋蛋说的CABOUTDLG。可我不会用DLLCALL.
 楼主| 发表于 2015-6-4 11:32:35 | 显示全部楼层
#include <GUIConstantsEx.au3>
#include <WinAPIDlg.au3>

Local $hForm = GUICreate('测试 ' & StringReplace(@ScriptName, '.au3', '()'), 400, 400)
Local $Button = GUICtrlCreateButton('关于', 165, 366, 70, 23)
GUICtrlSetState($Button, $GUI_DEFBUTTON)
GUISetState(@SW_SHOW)
Send('{Enter}')

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            ExitLoop
        Case $Button
            _WinAPI_ShellAboutDlg('关于', '测试 [关于] 对话框', '简单测试文本', _WinAPI_ShellExtractIcon(@AutoItExe, 0, 32, 32), $hForm)
    EndSwitch
WEnd
这是帮助文件里面的 _WinAPI_ShellAboutDlg 可惜,不能更改他的样式,只是调用Win自己的关于对话框。
发表于 2015-6-4 15:41:28 | 显示全部楼层
回复 10# macran
做个无边框,自绘图,就能有这个效果:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2015-6-4 16:23:25 | 显示全部楼层
回复 11# chzj589

GDI?
 楼主| 发表于 2015-6-4 16:23:53 | 显示全部楼层
回复 11# chzj589

GDI?
有源码提供下吗?
发表于 2015-6-4 16:43:35 | 显示全部楼层
本帖最后由 chzj589 于 2015-6-4 16:44 编辑

回复 13# macran

#include <GUIConstantsEx.au3>
#include <WinAPIDlg.au3>
#include <WindowsConstants.au3>
$Form1_1 = GUICreate('无边框自绘图', 430, 376, -1, -1, BitOR($WS_SYSMENU, $WS_POPUP, $DS_MODALFRAME))
$BACKAC = GUICtrlCreatePic(@ScriptDir & "\123A.jpg", 0, 0, 430, 376)
GUICtrlSetState(-1, $GUI_DISABLE)
$Label0 = GUICtrlCreateLabel("  关于", 2, 4, 400, 20)
GUICtrlSetTip($Label0, "无边框自绘图")
GUICtrlSetBkColor(-1, 0x0000FF)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetFont(-1, 12, 600, 0, 'Verdana')
$Label00 = GUICtrlCreateLabel('×', 400, -7, 30, 28)
GUICtrlSetBkColor(-1, 0x0000FF)
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetFont(-1, 24, 400, 0, 'Verdana')
$ico100 = GUICtrlCreateIcon("", 2, 404, 1, 24, 24)
GUICtrlSetImage($ico100, @ScriptDir & "\wrong.ico")
$Group1 = GUICtrlCreateGroup("", 10, 53, 410, 270)
$Group0 = GUICtrlCreateLabel("", 10, 31, 410, 20)
GUICtrlCreateLabel("", 10, 33, 410, 22)
;GUICtrlSetBkColor(-1, 0x00B2EE)
$menu_C = GUICtrlCreateContextMenu($Label0);创建上下文菜单(右键)
$menu_C1 = GUICtrlCreateMenuItem("移动", $menu_C);创建一个菜单项目控件
$menu_C2 = GUICtrlCreateMenuItem("关闭", $menu_C);创建一个菜单项目控件
GUISetState(@SW_SHOW)
While 1

图标文件无法上传,不知为什么?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-4-27 04:24 , Processed in 0.082975 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表