VC++下怎么实现Delphi BCB VB 中的Panel那种容器控件的效果

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VC++下怎么实现Delphi BCB VB 中的Panel那种容器控件的效果相关的知识,希望对你有一定的参考价值。

参考技术A 在View类中添加OnLButtonDown和OnLButtonUp函数
相应代码如下,LButtonDown中每一个/* */实现一种功能,是我以前照书上的写的,绝对能运行 你自己试下
void CDrawView::OnLButtonDown(UINT nFlags, CPoint point)

// TODO: Add your message handler code here and/or call default
m_ptOrigin=point;
CView::OnLButtonDown(nFlags, point);


void CDrawView::OnLButtonUp(UINT nFlags, CPoint point)

// TODO: Add your message handler code here and/or call default
/*
HDC hdc;
hdc=::GetDC(m_hWnd);
MoveToEx(hdc,m_ptOrigin.x,m_ptOrigin.y,NULL);
LineTo(hdc,point.x,point.y);
::ReleaseDC(m_hWnd,hdc);*/
/*
CDC *pDC=GetDC();
pDC->MoveTo(m_ptOrigin);
pDC->LineTo(point);
ReleaseDC(pDC);*/
/*
CClientDC dc(this);//view Ïà¹Ø
//CClientDC dc(GetParent());//mainFrameÏà¹Ø
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);*/
/*
//CWindowDC dc(this);
//CWindowDC dc(GetParent());//·ÃÎÊ´°¿Ú °üÀ¨±êÌâÀ¸
CWindowDC dc(GetDesktopWindow());//·ÃÎÊÕû¸öÆÁÄ»
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);*/
/*
CPen pen(PS_DASH,1,RGB(0,0,255));//DASH pen
CClientDC dc(this);
CPen *pOldPen=dc.SelectObject(&pen);
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
dc.SelectObject(pOldPen);*/
/*
CBrush brush(RGB(0,0,255));//画刷
CClientDC dc(this);
dc.FillRect(CRect(m_ptOrigin,point),&brush);*/
/*
CBitmap bitmap; //位图画刷
bitmap.LoadBitmap(IDB_BITMAP1);
CBrush brush(&bitmap);
CClientDC dc(this);
dc.FillRect(CRect(m_ptOrigin,point),&brush);*/

CClientDC dc(this);
//dc.Rectangle(CRect(m_ptOrigin,point));//矩形
CBrush *pBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
CBrush *pOldBrush=dc.SelectObject(pBrush);
dc.Rectangle(CRect(m_ptOrigin,point));
dc.SelectObject(pOldBrush);
CView::OnLButtonUp(nFlags, point);//透明矩形
本回答被提问者采纳

vb中的randomize怎么用

参考技术A Dim ret As Integer
Randomize
ret = Rnd() * (Max - Min) + 1本回答被提问者采纳
参考技术B Rnd 函数

返回一个包含随机数值的 Single。

语法

Rnd[(number)]

可选的 number 参数是 Single 或任何有效的数值表达式。

返回值

如果 number 的值是 Rnd 生成
小于 0 每次都使用 number 作为随机数种子得到的相同结果。
大于 0 序列中的下一个随机数。
等于 0 最近生成的数。
省略 序列中的下一个随机数。

说明

Rnd 函数返回小于 1 但大于或等于 0 的值。

number 的值决定了 Rnd 生成随机数的方式。

对最初给定的种子都会生成相同的数列,因为每一次调用 Rnd 函数都用数列中的前一个数作为下一个数的种子。

在调用 Rnd 之前,先使用无参数的 Randomize 语句初始化随机数生成器,该生成器具有根据系统计时器得到的种子。

为了生成某个范围内的随机整数,可使用以下公式:

Int((upperbound - lowerbound + 1) * Rnd + lowerbound)

这里,upperbound 是随机数范围的上限,而 lowerbound 则是随机数范围的下限。

注意 若想得到重复的随机数序列,在使用具有数值参数的 Randomize 之前直接调用具有负参数值的 Rnd。使用具有同样 number 值的 Randomize 是不会得到重复的随机数序列的。
Randomize语句但独用就可以,在第一个rnd函数之前有就可以,作用是初始化随机数生成器。
如果不用这个语句的话,每次生成的随机数都相同,用了之后,每次的随机数就会不相同了。
后面也可以加参数,但这样每次运行的结果也是相同的.不加参数,自动以系统计时器返回的数字作为参数。
补充:msdn中的说明
Randomize 用 number 将 Rnd 函数的随机数生成器初始化,该随机数生成器给 number 一个新的种子值。如果省略 number,则用系统计时器返回的值作为新的种子值。

如果没有使用 Randomize,则(无参数的)Rnd 函数使用第一次调用 Rnd 函数的种子值。

注意 若想得到重复的随机数序列,在使用具有数值参数的 Randomize 之前直接调用具有负参数值的 Rnd。使用具有同样 number 值的 Randomize 是不会得到重复的随机数序列的。

以上是关于VC++下怎么实现Delphi BCB VB 中的Panel那种容器控件的效果的主要内容,如果未能解决你的问题,请参考以下文章

delphi 报表

Delphi 读写注册表

C++编译时一直提示iostream.h的错误,该怎么解决啊?

最近想学个上位机软件,上位机软件一般用哪个,哪个好学?还有VB,VC,C#的优点和缺点。希望做上位机软件的前

Delphi被淘汰了吗?现在用它做毕业设计合适吗?

BCB/Delphi中常用的VCL函数说明(文件函数)