我试图用C ++来模仿一个对话框上的超链接。
我正在使用SS_NOTIFY进行静态控制设置,以便用户可以单击该控件并转到网页:
LTEXT "Caption2",IDC_SETTINGS,9,36,219,13,SS_NOTIFY
使用SS_NOTIFY设置,我可以拦截点击,因为它是针对静态注册的:
case IDC_STC_URL: ShellExecute(NulL,"open","http://Google.co.uk",NulL,SW_SHOWnorMAL); return TRUE;
我也通过拦截WM_SETCURSOR消息将光标更改为一只手:
什么是BOol WINAPI返回types
pyautogui点击权限错误
如何在python中确定外部程序是否打开?
带有AWS EC2的ZeroMQ服务器/客户端
检测文件是否被 *** 作系统阻止
case WM_SETCURSOR: POINT pt; RECT rect; GetCursorPos( &pt ); GetwindowRect( GetDlgitem(hwnd,IDC_SETTINGS),&rect ); if (PtInRect(&rect,pt)) { SetCursor(LoadCursor(NulL,IDC_HAND)); } else { SetCursor(LoadCursor(NulL,IDC_ARROW)); } return TRUE;
但是,如果设置了SS_NOTIFY,则光标更改不起作用。 当SS_NOTIFY是disabeled它的确如此。 但是,然后点击没有注册对静态,所以ShellExecute()不打开URL。
有没有人有什么我做错了什么build议?
谢谢,还有。
批量文件中的CSV格式
仅列出“设备和打印机”面板中显示的设备
可执行文件从命名pipe道启动?
如何在windows上用Python更改文件夹图标?
在windows XP中,从C ++中的压缩标准库中embeddedPython 3.3
对话框proc的返回值与窗口proc的返回值不同。 (文档的对话框过程: http : //msdn.microsoft.com/en-us/library/windows/desktop/ms645469 (v= vs.85).aspx – 值得仔细阅读。)从对话框的返回值只是TRUE或FALSE ,表示消息是否被处理,但窗口过程的返回值是窗口消息处理的返回值。
如果窗口消息有一个有意义的返回值(大多数不这样做,但WM_SETCURSOR是这样做的),在对话框过程中,需要使用SetwindowLong(hwnd,DWL_MSGRESulT,value)来设置结果,然后从对话框返回TRUE PROC。
我认为默认的DWL_MSGRESulT是零,所以在这个代码中,你将从WM_SETCURSOR消息返回FALSE 。 这表明静态应该做它自己的事情 – 即设置箭头光标。
总结以上是内存溢出为你收集整理的SS_NOTIFY和WM_SETCURSOR全部内容,希望文章能够帮你解决SS_NOTIFY和WM_SETCURSOR所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)