首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

重绘,该如何处理

2012-03-01 
重绘 - C++ Builder / Windows SDK/API想问一下,LISTBOX的滚动条如何才能重绘或是改变颜色呢?我看WINDOWSA

重绘 - C++ Builder / Windows SDK/API
想问一下,LISTBOX的滚动条如何才能重绘或是改变颜色呢?
我看WINDOWSAPI 上好象是说scrollwindowex函数可以重绘,但不知道怎么做,谁能教我一下。

分不够的话可以在加的。

[解决办法]
ScrollWindowEx  函数功能:该函数滚动指定窗体客户区域的目录。
  函数原型:
  int ScrollWindowEx(
  HWND hWnd, // handle to window
  int dx, // horizontal scrolling
  int dy, // vertical scrolling
  CONST RECT *prcScroll, // client area
  CONST RECT *prcClip, // clipping rectangle
  HRGN hrgnUpdate, // handle to update region
  LPRECT prcUpdate, // invalidated region
  UINT flags // scrolling options
  );
  参数:
  hWnd:客户区域将被滚动的窗体句柄。
  dx:在设备单元中,指定水平滚动数量。在向左滚动时此参数必须为负。
  dy:在设备单元中,指定垂直滚动数量。在向上滚动时此参数必须为负。
  prcScroll:指向RECT结构,它指定了将被滚动的客户区域部分。
  prcClip:指向包含了类似于被剪下矩形的RECT结构。只有在剪下内部的小块图形才受影响。从矩形外向内部的滚动部分将被着色;而从内向外的滚动部分将不再被着色。
  hrgnUpdate:处理已被修改的区域,保存这些由于滚动而无效的区域。此参数可以为空。
  prcUpdate:指向RECT结构,它接收由于滚动使得矩形无效部分的边界。此参数值可以为空。
  flags:指定控制滚动的标志。这个参数可以是下面的值:
  SW_ERASE:通过发送WM_ERASEBKGND消息给窗体。
  SW_INVALIDATE:在滚动后,使得由参数hrgnUpdate标识的无效区域被擦除。
  SW_SCROLLCHILDREN:动所有由参数prcScroll指出交叉重叠矩形的子窗体。子窗体按照dx和dy规定的像素个数滚动。系统发送消息给所有由prcScroll指出交叉重叠矩形的子窗体,即使他们不移动。
  SW_SMOOTHSCROLL:Windows NT 5.0或以上版本中:使用平滑滚动。利用flags参数中HIWORD部分简要说明所需平滑滚动操作的时间。
  返回值:如果函数运行成功,返回值为SIMPLEREGION(矩形的无效区域),COMPLEXREGION(非矩形的无效区域)或NULLREGION(没有使无效的区域)如果函数运行成功,返回值为ERROR。若想获得更多的错误信息,请调用GetLastError函数。
  注意:如果SW_INVALIDATE和SW_ERASE标志没有被设定,那么函数ScrollWindowEx不能使滚动离开的区域失效。如果其中任意一个标志被设置,ScrollWindowEx函数就可以使区域无效。这块区域将不再被更新直到应用程序调用theUpdateWindow函数,调用theRedrawWindow函数(指定RDW_UPDATENOW或RDW_ERASENOW标志)或是从申请队列中找到WM_PAINT消息。
  如果窗体拥有WS_CLIPCHILDREN类型,那么由hrgnUpdate和prcUpdate指定的返回区域描述了必须更新的滚动窗体的全部区域,包括所需更新子窗体的任何区域。
  若SW_SCROLLCHILDREN标志被设置,在子窗体被滚动时,系统将不能完全更新屏幕。位于矩形外边的滚动子窗体部分不被擦除,也不在它的新方向上被重画。为了移动子窗体使之完全不在prcScroll指定的矩形条中,可使用DeferWindowPos函数。若标志SW_SCROLLCHILDREN被设置并且^符号交叉滚动矩形,则光标也重新设置。
  所有输入输出均被定义为客户端如果有必要,使用IptoDP和dptoLP函数转换逻辑相关性。
  Windows CE:参数flags不支持SW_SCROLLCHILDREN。参数dx和dy中只有一个为零。

[解决办法]
http://topic.csdn.net/u/20071017/10/273f7929-6db4-4307-bf48-0f94fb762b10.html
里面的19楼的回复看看吧
我也没做过,只能这样了

热点排行