#include<windows.h>#define NUM 6
LRESULT CALLBACK WindowProc(HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
static TCHAR appName[]=TEXT("sun");
WNDCLASS wndclass;
MSG msg;
HWND hwnd;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.hCursor = NULL ;
wndclass.hIcon = NULL ;
wndclass.hInstance = hInstance;
wndclass.lpfnWndProc = WindowProc;
wndclass.lpszClassName = appName ;
wndclass.lpszMenuName = NULL ;
wndclass.style = CS_VREDRAW | CS_HREDRAW ; if(!RegisterClass(&wndclass))
{
MessageBox(NULL,TEXT("球队信息"),TEXT("通知"),MB_OK);
return -1;
}
hwnd = CreateWindow(appName,TEXT("足球"),WS_OVERLAPPED|WS_CAPTION|
WS_SYSMENU|WS_MINIMIZEBOX|
WS_VSCROLL|WS_HSCROLL,
0,0,400,200,NULL,NULL,hInstance,NULL);
UpdateWindow(hwnd);
ShowWindow(hwnd,nCmdShow);
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}LRESULT CALLBACK WindowProc(HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
)
{
HDC hdc;
PAINTSTRUCT ps;
TEXTMETRIC tm;
static int cxChar, cyChar;
static int Spos;
int i;
switch(uMsg)
{
case WM_CREATE:
SetScrollRange(hwnd,SB_VERT,0,10,FALSE);
SetScrollPos(hwnd,SB_VERT,Spos,TRUE);
return 0;
case WM_PAINT:
hdc = BeginPaint(hwnd,&ps);
EndPaint(hwnd,&ps);
return 0;
case WM_VSCROLL:
switch(LOWORD(wParam));
{
case SB_LINEUP:
MessageBox(NULL,TEXT("球队信息"),TEXT("通知"),MB_OK);
break; default:
break;
}
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd,uMsg,wParam,lParam);
}
红色部分,当单击滚动条滚动的时候弹出信息,但为什么弹出了两次?
解决方案 »
- 怎么得到ListBox的可见行数?
- 俄文字符串显示问题
- ADSI 达人请进。
- 大家来赌一把,刚从水园学的:)
- mfc 坐标曲线图
- 远程控制的东西,刚开始,请有经验的朋友提供一点东西。
- 如何把形如m_pRecordset->Fields->GetItem(_variant_t("序号"))->Value的_variant_t串转化为一个整数,大虾帮忙!
- 怎样实现一个函数返回值的类型根据参数的不同而变化?
- 8848.com 高薪招聘VC/MFC程序员
- 关于 keybd_event 函数,调时不能即时响应!
- 想串口发送十六机制数据问题。环境:XP SP3,古董VC++6.0。
- Winpcap程序出错
在上面的代码中我添加对 Scrolls one page down的处理
但当作这个动作的时候根本就不响应。在添加多少处理都是只执行第一个case后的
不知道为什么? case WM_VSCROLL:
switch(LOWORD(wParam));
{
case SB_LINEUP:
MessageBox(NULL,TEXT("球队信息"),TEXT("通知"),MB_OK);
break;
case SB_PAGEDOWN:
MessageBox(NULL,TEXT("SB_PAGEDOWN"),TEXT("通知"),MB_OK);
break;
default:
break;
}
return 0;
多了个分号。另外 当产生 WM_VSCROLL
是对向上滚动判断,然后弹框。
{
switch(LOWORD(wParam));
{
case SB_LINEUP:
MessageBox(NULL,TEXT("球队信息"),TEXT("通知"),MB_OK);
break;
default:
break;
}
}
switch后多了个分号 成空switch了
程序成这样了
case WM_VSCROLL:
switch(LOWORD(wParam));
case SB_LINEUP:弹框;break;
default break;滚动与结束滚动产生WM_VSCROLL 所以弹出两次去掉后面的; 则正常.