|
本帖最后由 HTd 于 2013-4-3 20:32 编辑
想做个GIS地图,用到滚轮缩放功能,帮助文档上说WM_MOUSEWHEEL的参数参考MSDN上的wParam。
MSDN上说这个参数高字段代表滚轮滚动距离,正为上滚,负为下滚。
问题来了,测试程序的时候发现MOUSEWHEEL响应函数 的flag参数与帮助文档不符合,无论怎么滚flag参数高字段都是正的。另外测试了XE_MOUSEWHEEL,发现其响应函数flag参数是正确的,上滚则正,下滚则负。
不知道是我理解错误,还是bug?附代码如下- #pragma comment(lib, "XCGUId.lib")
- #include "xcgui.h"
- //CXEventMsg : C++消息事件接口类
- //CMyWnd : 我的窗口类
- class CMyWnd : public CXEventMsg
- {
- public:
- HWINDOW m_hWindow; //窗口句柄
- HELE m_hButton; //按钮句柄
-
- BOOL Create() //创建窗口和按钮
- {
- m_hWindow=XWnd_CreateWindow(0,0,400,300,L"炫彩界面库-窗口"); //创建窗口
- if(m_hWindow)
- {
- m_hButton =XBtn_Create(10,10,80,25,L"",m_hWindow); //创建按钮
- XCGUI_RegEleEvent(m_hButton,XE_MOUSEWHEEL,&CMyWnd::EleMouseWheel);
- XCGUI_RegWndMessage(m_hWindow, WM_MOUSEWHEEL ,&CMyWnd::WndMouseWheel);
- XWnd_ShowWindow(m_hWindow,SW_SHOW); //显示窗口
- return true;
- }
- return false;
- }
- BOOL EleMouseWheel(HELE hEle,HELE hEventEle,UINT flags,POINT *pPt)
- {
- //弹出消息框
- XMessageBox(hEle,L"你点击了按钮",L"提示",XMB_OK | XMB_CANCEL);
- return false;
- }
- BOOL WndMouseWheel(HWINDOW hWindow,UINT flags,POINT *pPt)
- {
- return 0;
- }
- };
- int APIENTRY _tWinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPTSTR lpCmdLine, int nCmdShow)
- {
- XInitXCGUI(); //初始化
- CMyWnd MyWnd;
- if(MyWnd.Create())
- {
- XRunXCGUI(); //运行
- }
- return 0;
- }
复制代码 |
|