滚动条函数scrollwindow研究

本文主要探讨了Windows API中的ScrollWindow函数,特别是其最后两个参数的含义。通过示例代码和四种不同情况的分析,解释了不同参数设置下滚动区域和剪裁矩形如何影响窗口内容的滚动和重绘。作者强调了滚动操作会触发WM_PAINT消息,但不会更新onpaint中的变量,同时指出ScrollWindow的实现逻辑涉及内存位图和重绘操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

滚动条函数研究

 

下周工作需要,可能用到滚动条,所以在此先研究一下滚动条相关的知识(可怜我接触UI1年多,尽然没有用过滚动条%>_<%)

 

查了下资料,感觉滚动条用法比较简单,实在没有什么可说的,具体资料网上一查一大堆,这里就不再一一列举了;但是感觉网上困惑最多的也没有给出具体答案的是scrollwindow这个函数的最后两个参数的含义,对于初学者来说,初看也是十分的困惑,所以打算花点时间研究下这个,也算是加深印象,^_^

 

下面先上一段代码,也是从网上查抄来的,此公只有代码,却没有任何说明,似乎是嫌说明太累,^_^ ,那我就顺着他的代码来,并说明实验结果,给大家一个完整的答复,也不枉浪费大家的阅读时间!好,下面开始!

 

代码:(总体而言就是一个cpp文件)

 

 

#include "stdafx.h"

#include <windows.h>

#include <stdio.h>

 

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);

 

int WINAPIWinMain(HINSTANCEhInstance,HINSTANCEyY,PSTR szCmdLine,int iCmdShow)

{

   static TCHAR szWndClassName[]=TEXT("yy");

   HWND hwnd;

   MSG msg;

   WNDCLASS wndclass;

 

   wndclass.style=CS_HREDRAW|CS_VREDRAW|CS_OWNDC;

   wndclass.lpfnWndProc=WndProc;

   wndclass.cbClsExtra=0;

   wndclass.cbWndExtra=0;

   wndclass.hInstance=hInstance;

   wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);

   wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);

   wndclass.hbrBackground= CreateSolidBrush( RGB(212,208,200) ) ;

   wndclass.lpszMenuName=NULL;

   wndclass.lpszClassName=szWndClassName;

 

   if(!RegisterClass(&wndclass)){

      MessageBox(NULL,TEXT("Thisprogram requires Windows NT!"),szWndClassName,MB_ICONERROR);

      return 0;

   }

 

   hwnd=CreateWindow(szWndClassName,

      TEXT("ScrollWindow()º¯Êý"),

      WS_OVERLAPPED   |  WS_CAPTION   |  WS_SYSMENU    |  WS_MINIMIZEBOX,

      CW_USEDEFAULT,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值