设为首页 收藏本站

NSIS中文论坛

查看: 1768|回复: 12

[源码] EditVC

[复制链接]
  • TA的每日心情

    2019-1-8 14:13
  • 签到天数: 129 天

    [LV.7]常住居民III

    27

    主题

    178

    帖子

    1万

    积分

    积分
    12093
    发表于 2015-8-7 10:52:41 | 显示全部楼层 |阅读模式
    贾可编写

    不多说了,其实就是一个利用编辑框加上文本框实现“安装目录文本上下居中”的效果。
    预览图:
    2015-08-07_104203.png
    2015-08-07_104227.png

    如果要脚本简洁一点的话,你可以把这段单独写成nsh头文件。这样清爽很多,完整脚本请下载附件。
    1. !include nsDialogs.nsh

    2. ################################################################################
    3. ################################################################################
    4. ################################################################################
    5. !macro _MISCFUNC_DEFINE_IFNDEF _m _v
    6. !ifndef ${_m}
    7.     !define ${_m} `${_v}`
    8. !endif
    9. !macroend

    10. !macro _MISCFUNC_DEFINE_IFNDEF_EX _m _a _o _b
    11. !ifndef ${_m}
    12.     !define /math ${_m} ${_a} ${_o} ${_b}
    13. !endif
    14. !macroend

    15. !macro _MISCFUNC_DEFINE_IFNDEF_AW _m
    16. !ifndef ${_m}
    17.     !ifndef NSIS_UNICODE
    18.         !ifndef ${_m}A
    19.             !error "${_m}A not defined!"
    20.         !else
    21.             !define ${_m} "${${_m}A}"
    22.         !endif
    23.     !else
    24.         !ifndef ${_m}W
    25.             !error "${_m}W not defined!"
    26.         !else
    27.             !define ${_m} "${${_m}W}"
    28.         !endif
    29.     !endif
    30. !endif
    31. !macroend

    32. !ifndef _MISCFUNC_DEFINE
    33. !define _MISCFUNC_DEFINE    "!insertmacro _MISCFUNC_DEFINE_IFNDEF"
    34. !endif

    35. !ifndef _MISCFUNC_DEFINE_EX
    36. !define _MISCFUNC_DEFINE_EX "!insertmacro _MISCFUNC_DEFINE_IFNDEF_EX"
    37. !endif

    38. !ifndef _MISCFUNC_DEFINE_AW
    39. !define _MISCFUNC_DEFINE_AW "!insertmacro _MISCFUNC_DEFINE_IFNDEF_AW"
    40. !endif

    41. /* Common window Styles */
    42. ${_MISCFUNC_DEFINE}    WS_TABSTOP                       0x00010000
    43. ${_MISCFUNC_DEFINE}    WS_GROUP                         0x00020000
    44. ${_MISCFUNC_DEFINE}    WS_SIZEBOX                       0x00040000
    45. ${_MISCFUNC_DEFINE}    WS_SYSMENU                       0x00080000
    46. ${_MISCFUNC_DEFINE}    WS_HSCROLL                       0x00100000
    47. ${_MISCFUNC_DEFINE}    WS_VSCROLL                       0x00200000
    48. ${_MISCFUNC_DEFINE}    WS_DLGFRAME                      0x00400000
    49. ${_MISCFUNC_DEFINE}    WS_BORDER                        0x00800000
    50. ${_MISCFUNC_DEFINE}    WS_CAPTION                       0x00C00000
    51. ${_MISCFUNC_DEFINE}    WS_MAXIMIZE                      0x01000000
    52. ${_MISCFUNC_DEFINE}    WS_CLIPCHILDREN                  0x02000000
    53. ${_MISCFUNC_DEFINE}    WS_CLIPSIBLINGS                  0x04000000
    54. ${_MISCFUNC_DEFINE}    WS_DISABLED                      0x08000000
    55. ${_MISCFUNC_DEFINE}    WS_VISIBLE                       0x10000000
    56. ${_MISCFUNC_DEFINE}    WS_ICONIC                        0x20000000
    57. ${_MISCFUNC_DEFINE}    WS_CHILD                         0x40000000
    58. ${_MISCFUNC_DEFINE}    WS_POPUP                         0x80000000

    59. /* Common window extended styles */
    60. ${_MISCFUNC_DEFINE}    WS_EX_DLGMODALFRAME              0x00000001
    61. ${_MISCFUNC_DEFINE}    WS_EX_NOPARENTNOTIFY             0x00000004
    62. ${_MISCFUNC_DEFINE}    WS_EX_TOPMOST                    0x00000008
    63. ${_MISCFUNC_DEFINE}    WS_EX_ACCEPTFILES                0x00000010
    64. ${_MISCFUNC_DEFINE}    WS_EX_TRANSPARENT                0x00000020
    65. ${_MISCFUNC_DEFINE}    WS_EX_MDICHILD                   0x00000040
    66. ${_MISCFUNC_DEFINE}    WS_EX_TOOLWINDOW                 0x00000080
    67. ${_MISCFUNC_DEFINE}    WS_EX_WINDOWEDGE                 0x00000100
    68. ${_MISCFUNC_DEFINE}    WS_EX_CLIENTEDGE                 0x00000200
    69. ${_MISCFUNC_DEFINE}    WS_EX_CONTEXTHELP                0x00000400
    70. ${_MISCFUNC_DEFINE}    WS_EX_RIGHT                      0x00001000
    71. ${_MISCFUNC_DEFINE}    WS_EX_RTLREADING                 0x00002000
    72. ${_MISCFUNC_DEFINE}    WS_EX_LEFTSCROLLBAR              0x00004000
    73. ${_MISCFUNC_DEFINE}    WS_EX_CONTROLPARENT              0x00010000
    74. ${_MISCFUNC_DEFINE}    WS_EX_STATICEDGE                 0x00020000
    75. ${_MISCFUNC_DEFINE}    WS_EX_APPWINDOW                  0x00040000
    76. ${_MISCFUNC_DEFINE}    WS_EX_LAYERED                    0x00080000

    77. !define __NSD_ReadText_CLASS Edit
    78. !define __NSD_ReadText_STYLE ${DEFAULT_STYLES}|${WS_TABSTOP}|${ES_AUTOHSCROLL}|${ES_READONLY}
    79. !define __NSD_ReadText_EXSTYLE ${WS_EX_WINDOWEDGE}|${WS_EX_CLIENTEDGE}
    80. !insertmacro __NSD_DefineControl ReadText

    81. !define __NSD_NoBorderEdit_CLASS Edit
    82. !define __NSD_NoBorderEdit_STYLE ${DEFAULT_STYLES}|${WS_TABSTOP}|${ES_AUTOHSCROLL}
    83. !define __NSD_NoBorderEdit_EXSTYLE 0
    84. !insertmacro __NSD_DefineControl NoBorderEdit

    85. !define __NSD_WhiteFrame_CLASS Static
    86. !define __NSD_WhiteFrame_STYLE ${DEFAULT_STYLES}|${SS_WHITEFRAME}
    87. !define __NSD_WhiteFrame_EXSTYLE ${WS_EX_TRANSPARENT}
    88. !insertmacro __NSD_DefineControl WhiteFrame

    89. !define __NSD_WhiteRect_CLASS Static
    90. !define __NSD_WhiteRect_STYLE ${DEFAULT_STYLES}|${WS_BORDER}|${SS_WHITERECT}
    91. !define __NSD_WhiteRect_EXSTYLE ${WS_EX_TRANSPARENT}
    92. !insertmacro __NSD_DefineControl WhiteRect

    93. !define __NSD_GrayFrame_CLASS Static
    94. !define __NSD_GrayFrame_STYLE ${DEFAULT_STYLES}|${SS_GRAYFRAME}
    95. !define __NSD_GrayFrame_EXSTYLE ${WS_EX_TRANSPARENT}
    96. !insertmacro __NSD_DefineControl GrayFrame

    97. !define __NSD_GrayRect_CLASS Static
    98. !define __NSD_GrayRect_STYLE ${DEFAULT_STYLES}|${WS_BORDER}|${SS_GRAYRECT}
    99. !define __NSD_GrayRect_EXSTYLE ${WS_EX_TRANSPARENT}
    100. !insertmacro __NSD_DefineControl GrayRect

    101. !define __NSD_BlackFrame_CLASS Static
    102. !define __NSD_BlackFrame_STYLE ${DEFAULT_STYLES}|${SS_BLACKFRAME}
    103. !define __NSD_BlackFrame_EXSTYLE ${WS_EX_TRANSPARENT}
    104. !insertmacro __NSD_DefineControl BlackFrame

    105. !define __NSD_BlackRect_CLASS Static
    106. !define __NSD_BlackRect_STYLE ${DEFAULT_STYLES}|${WS_BORDER}|${SS_BLACKRECT}
    107. !define __NSD_BlackRect_EXSTYLE ${WS_EX_TRANSPARENT}
    108. !insertmacro __NSD_DefineControl BlackRect
    109. ################################################################################
    110. ################################################################################
    111. ################################################################################
    复制代码


    完整脚本(回复可查看):
    游客,如果您要查看本帖隐藏内容请回复

    回复

    使用道具 举报

    该用户从未签到

    1

    主题

    8

    帖子

    438

    积分

    积分
    438
    发表于 2015-8-9 10:56:35 | 显示全部楼层
    我一般用label代替
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    146

    帖子

    746

    积分

    积分
    746

    NSIS元老

    发表于 2015-8-13 13:29:15 | 显示全部楼层
    其实这里边多余定义的东西还是太多了,如果要 EditVC 也用不了这么多吧。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2019-1-8 14:13
  • 签到天数: 129 天

    [LV.7]常住居民III

    27

    主题

    178

    帖子

    1万

    积分

    积分
    12093
     楼主| 发表于 2015-8-16 13:19:32 | 显示全部楼层
    jiake 发表于 2015-8-13 13:29
    其实这里边多余定义的东西还是太多了,如果要 EditVC 也用不了这么多吧。

    是啊,看怎么用了,还能做更多的事情。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-3-10 08:49
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    0

    主题

    19

    帖子

    986

    积分

    积分
    986
    发表于 2015-8-17 09:13:17 | 显示全部楼层
    学习下。
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2018-12-29 14:06
  • 签到天数: 284 天

    [LV.8]以坛为家I

    6

    主题

    70

    帖子

    4563

    积分

    积分
    4563
    发表于 2015-10-21 16:35:37 | 显示全部楼层
    这个不错啊,很需要啊.谢谢
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2017-10-19 15:56
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    0

    主题

    6

    帖子

    81

    积分

    积分
    81
    发表于 2015-11-27 11:31:31 | 显示全部楼层
    正需要这个功能,谢谢了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2018-3-29 18:51
  • 签到天数: 54 天

    [LV.5]常住居民I

    24

    主题

    80

    帖子

    810

    积分

    积分
    810
    发表于 2017-3-1 15:08:11 | 显示全部楼层
    看看能不能解决nsw上边框的问题
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    2

    帖子

    15

    积分

    积分
    15
    发表于 2017-5-16 11:16:56 | 显示全部楼层
    谢谢分享
    回复

    使用道具 举报

    该用户从未签到

    7

    主题

    13

    帖子

    112

    积分

    积分
    112
    发表于 2017-11-24 18:17:31 | 显示全部楼层
    谢谢分享
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|联系我们|NSIS中文论坛    

    GMT+8, 2019-1-16 08:28 , Processed in 0.032979 second(s), 17 queries , MemCache On.

    Powered by Discuz!X3.3

    Copyright © 2015-2018 NSIS中文论坛

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