小弟初学windows编程,在这里碰见了一个问题,void DrawRectangle(HWND hwnd)
{ HBRUSH hBrush,h2,h3;
HDC hdc;
RECT rect;
LOGBRUSH logb;
logb.lbColor = RGB(rand()%256,rand()%256,rand()%256);
logb.lbHatch = NULL;
logb.lbStyle = BS_HATCHED;
if(cxClient == 0|| cyClient == 0)
return ;
SetRect(&rect,rand()%cxClient, rand()%cyClient,rand()%cxClient,
rand()%cyClient);
hBrush = CreateHatchBrush(HS_DIAGCROSS,RGB(rand()%256,rand()%256,rand()%256));////h2=CreateSolidBrush(RGB(rand()%256,rand()%256,rand()%256));
/////我的本意是在这里初始化h2和h3后就可以实现多种不同矩形的随机,但是初始化后随机几秒钟后就停止了,
////如果不用这两个画刷,就能够一直随机并显示,想知道为什么, hdc = GetDC(hwnd);
FillRect(hdc, &rect, hBrush);
ReleaseDC(hwnd, hdc);
DeleteObject(hBrush);
}
这是windows程序设计上的一个例题,小弟初学,请各位大虾指教
{ HBRUSH hBrush,h2,h3;
HDC hdc;
RECT rect;
LOGBRUSH logb;
logb.lbColor = RGB(rand()%256,rand()%256,rand()%256);
logb.lbHatch = NULL;
logb.lbStyle = BS_HATCHED;
if(cxClient == 0|| cyClient == 0)
return ;
SetRect(&rect,rand()%cxClient, rand()%cyClient,rand()%cxClient,
rand()%cyClient);
hBrush = CreateHatchBrush(HS_DIAGCROSS,RGB(rand()%256,rand()%256,rand()%256));////h2=CreateSolidBrush(RGB(rand()%256,rand()%256,rand()%256));
/////我的本意是在这里初始化h2和h3后就可以实现多种不同矩形的随机,但是初始化后随机几秒钟后就停止了,
////如果不用这两个画刷,就能够一直随机并显示,想知道为什么, hdc = GetDC(hwnd);
FillRect(hdc, &rect, hBrush);
ReleaseDC(hwnd, hdc);
DeleteObject(hBrush);
}
这是windows程序设计上的一个例题,小弟初学,请各位大虾指教
解决方案 »
- spcp协议
- 如何使CombBox有记忆功能?
- 一个简单的怪问题
- 查找Disabled控件的ClassName和DlgItemText时,FindChildHwnd()/RealFindChildHwnd()不好使?
- 新建线程错误
- 怎么用VC看程序汇编出来的代码呢
- MFC用什么方法联接ORACLE数据库好???thanks!
- delphi中调用chm格式的帮助文件用什么函数
- 那位兄长知道杭州电信的网关是多少?
- 小弟初学VC,就想做个东西,查了半天帮助,弄了一个列举网络邻居程序,可是在一到下面标注的地方,就进入死循环,还请各位大哥,帮帮小弟,在些100分,不成敬意!
- 一些常见的Ole接口,其实可以等同于CoCreateInstance吗?
- 问一下这种获得窗口宽度的方法?
/////我的本意是在这里初始化h2和h3后就可以实现多种不同矩形的随机,但是初始化后随机几秒钟后就停止了,
////如果不用这两个画刷,就能够一直随机并显示,想知道为什么,==============
你的问题描述不是很清楚,可以是GDI资源没有释放吧
if(!hBrush) hBrush= CreateHatchBrush(HS_DIAGCROSS,RGB(rand()%256,rand()%256,rand()%256));if(!h2) h2=CreateSolidBrush(RGB(rand()%256,rand()%256,rand()%256));