CScrollView 的窗口范畴
CScrollView 的窗口范围
如题,我想做个文件二进制显示器,每行显示16字节,因此总共有:文件大小/16 行。再用 字体的高度 * 行数 做为SetScrollSizes参数的sizeTotal.映射方法用MM_TEXT.但有的文件特大,求出的行数超出了int的表示范围。此时sizeTotal.cy = 行数 * 字符的高度 将变为负数。因此再SetScrollSizes便会出错。
这时候该如何处理呢?
我想到不用CScrollView,直接从CView派生,自已处理相关滚动任务。但在处理OnVScroll时看到SCROLLINFO 这个参数的
typedef struct tagSCROLLINFO {
UINT cbSize;
UINT fMask;
int nMin;
int nMax;
UINT nPage;
int nPos;
int nTrackPos;
} SCROLLINFO, *LPSCROLLINFO;
都是int,那传个很大的数值还是会出错。
请教该如何处理!?
------解决方案--------------------
滚动的时候可以以行为单位, 不太清楚ScrollView好不好做
如果滚动条和显示都自己控制的话, 可以做到超过32G的。
PS: 我做的工具是用View的, ScrollView不熟。
如题,我想做个文件二进制显示器,每行显示16字节,因此总共有:文件大小/16 行。再用 字体的高度 * 行数 做为SetScrollSizes参数的sizeTotal.映射方法用MM_TEXT.但有的文件特大,求出的行数超出了int的表示范围。此时sizeTotal.cy = 行数 * 字符的高度 将变为负数。因此再SetScrollSizes便会出错。
这时候该如何处理呢?
我想到不用CScrollView,直接从CView派生,自已处理相关滚动任务。但在处理OnVScroll时看到SCROLLINFO 这个参数的
typedef struct tagSCROLLINFO {
UINT cbSize;
UINT fMask;
int nMin;
int nMax;
UINT nPage;
int nPos;
int nTrackPos;
} SCROLLINFO, *LPSCROLLINFO;
都是int,那传个很大的数值还是会出错。
请教该如何处理!?
------解决方案--------------------
滚动的时候可以以行为单位, 不太清楚ScrollView好不好做
如果滚动条和显示都自己控制的话, 可以做到超过32G的。
PS: 我做的工具是用View的, ScrollView不熟。