`
eimhee
  • 浏览: 2115681 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
Private Declare Function StretchBlt Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As LongPri ...
MSHFlexGrid控件点击时可以选中多行,但有时我们需要仅仅选中一行,有一个小技巧:   Option ExplicitPrivate Sub Form_Load()Dim i As Integer, j As IntegerWith MSHFlexGrid1.Rows = 10.Cols = 4For i = 1 To 9.TextMatrix(i, 0) = "第 " & i & " 行"For j = 1 To 3.TextMatrix(0, j) = "第 " & j & " 列&q ...
题目: 由八皇后问题扩展开来,即n*n的棋盘上摆放n个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 分析:   问题可以转化为12345...n 的满足某种条件(行已不等,列亦不等,只需设定其不在同一斜线上,即斜率不为 1 或-1 )的排列. 代码: Private Sub queensn(ByVal n As Integer, ByRef result() As String) '计算n皇后问题的过程Dim i As Long, J As Integer, k As Integer, number As Long, num As Long '循环 ...
题目: 在8×8格的国际象棋棋盘上摆放五个皇后,使其能攻击棋盘上的任何敌方棋子,有多少种摆法。 分析: 依然是一个组合问题。某个位置摆放一个“后”,则其所在行,所在列,所在对角线均属其控制范围,可用一个布尔型数组解决。 代码: Option Explicit Sub getall(Optional ByRef allresult As String)Dim s(63) As Boolean 'Dim result As Boolean '是否满足条件Dim index As Long, num As Long '累积计数Dim a As Integer, b As Integer, c As I ...
用API (GetAsyncKeyState)实现,在WIN 2K,XP 下有效: Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As IntegerPrivate Const VK_LSHIFT = &HA0Private Const VK_RSHIFT = &HA1Private Const VK_LCTRL = &HA2Private Const VK_RCTRL = &HA3Private Const VK_LMENU = & ...
    今天参考一个外文代码写的: (作者:Steve McMahon   steve@vbaccelerator.com, 网址:  http://www.shitalshah.com/vbxlr/tips/vba0035.htm )   Private Const LF_FACESIZE = 32Private Const FW_NORMAL = 400Private Const FW_BOLD = 700Private Const FF_DONTCARE = 0Private Const DEFAULT_QUALITY = 0Private Const DEFAULT_PITCH = 0 ...
    在日常生活和科学实验中,人们会经常发现因变量y和自变量x之间存在一定线性关系设一组数据为:     则y与x的关系可以用线性方程表示:           按最小二乘法可得:                     线性关系的程度可以用相关系数r表示   
GetTempPath取得的是一个DOS名称,当文件名长度大于8时,长文件名格式“C:\Documents and Settings\Administrator\Local Settings\Temp”会显示成“C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp”的短文件名格式,如何根据自己需要取得系统临时目录的途径,下面是一个新写的函数,调用两个API 实现,相信许多朋友可能用得到。 Option ExplicitPrivate Declare Function GetLongPathName Lib "kernel32" Alias "GetL ...
  为了使每一个汉字有一个全国统一的代码,1980年,我国颁布了第一个汉字编码的国家标准: GB2312-80《信息交换用汉字编码字符集》基本集,这个字符集是我国中文信息处理技术的发展基础,也是目前国内所有汉字系统的统一标准。由于国标码是四位十六进制,为了便于交流,大家常用的是四位十进制的区位码。所有的国标汉字与符号组成一个94×94的矩阵。在此方阵中,每一行称为一个"区",每一列称为一个"位",因此,这个方阵实际上组成了一个有94个区(区号分别为0 1到94)、每个区内有94个位(位号分别为01到94)的汉字字符集。一个汉字所在的区号和位号简单地组合在一 ...
本文演示了如何利用API进行窗体标题栏的裁剪和恢复,一并演示了控件的动态添加方法:   'This sample show you how to cut the caption title exactly and create controls with code.'add a new form ,do nothing but copy this codes for it.Option Explicit    Private Declare Function CreateRectRgn Lib "gdi32" (ByVal x1 As Long, ByVal y1 As Lo ...
从m 个互不相同元素中取 n 个元素,一般选用递归或回溯算法解决,本文旨在利用进制转换的方法达到这一目的。代码如下     Sub GETALL(ByVal num As Integer, ByRef x As Variant, ByRef RESULT() As String, Optional ByRef all As Long) Dim A() As String, b() As Integer '临时数组Dim n As Integer ' 数组元素个数Dim i As Long '循环变量Dim TEMP As Long '二进制转换中间变量Dim num2 As Integer '中 ...
题目: 将+,-,*,/ 添加到 1,2,3,4,5,6,7,8,9 之间,使其构成的算式四则运算结果等于100,如: 1*2*3*4+5+6+7*8+9=100 分析: 以上算式相当于把1~9  9 个数字和 8个(+,-,*,/ )作一个特殊顺序的排列,共有4^8=65536 种可能,再从中进行取舍。 代码: Option ExplicitPrivate Declare Function EbExecuteLine Lib "vba6.dll" (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unk ...
我们都知道,一个含n个元素的集合拥有2^n个子集合,并且不难发现,其中每个子集合都是从0到2^n-1 每个数的二进制格式中0 放弃,1选择的结果,如下所示: {}           000 {1}         100 {2}         010 {1,2}      110 {3}         001 {1,3}      101 {2,3}      011 {1,2,3}   111 所以根据数字的二进制转换,可以轻松获得一个集合的所有子集合,代码如下: Sub GETALL(ByVal mycollection As String, ByRef RESULT() As Str ...
题目: 十九世纪著名的数学家高斯提出:在8×8格的国际象棋棋盘上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 分析: 其实问题可以转化为12345678的满足某种条件(行已不等,列亦不等,只需设定其不在同一斜线上,即斜率不为 1 或-1 )的排列. 通过前两天用非递归方式解决序列的全排列问题(.http://blog.csdn.net/northwolves/archive/2004/07/21/47601.aspx),在较短的时间内写出如下代码,经测试速度还可以: 代码: 'add a textbox (with multiline=tr ...
题目: 一个共有20个台阶的楼梯,从下面走到上面。一次只能迈一个台阶或两个台阶,并且不能后退,走完这个楼梯共有多少种方法。 分析: 1 步台阶只有1种走法(1) 2步台阶2种(11、2) 3步台阶有3种(111、12、21) 4 步台阶有5种(1111、112、121、211、22) 5 步台阶有8种(11111、1112、1121、1211、122、2111、212、221) 6步台阶有13种(111111、11112、11121、11211、1122、12111,1212、1221、2111、2112、2121、2211、222) 可以发现每一个台阶数的走法对应为比它少一步各种走法前加一个1 ...
Global site tag (gtag.js) - Google Analytics