VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 983|回复: 14

[求助] 希望有人帮忙把这个VB程序转化为C++程序,谢谢。

[复制链接]
75_avatar_middle
在线会员 发表于 2017-9-1 06:53:58 | 显示全部楼层 |阅读模式
3驿站币
Public Enum enuFlashOptions
    FLASHW_ALL = &H3 ' Flash both the window caption and taskbar button.
    ' This is equivalent to setting the FLASHW_CAPTION | FLASHW_TRAY flags.
    FLASHW_CAPTION = &H1 ' Flash the window caption.
    FLASHW_STOP = 0 ' Stop flashing. The system restores the window to its original state.
    FLASHW_TIMER = &H4 ' Flash continuously, until the FLASHW_STOP flag is set.
    FLASHW_TIMERNOFG = &HC ' Flash continuously until the window comes to the foreground.
    FLASHW_tray = &H2
End Enum

Public Type FlashWindowInfo
    cbSize As Long
    hwnd As Long
    dwflags As Long
    uCount As Long
    dwTimeout As Long
End Type
Private Declare Function FlashWindowEx Lib "user32.dll" (ByRef pInfo As FlashWindowInfo) As Boolean

Public Sub FlashWindow(ByVal hwnd As Long, ByVal FlashWindowInfoFlags As enuFlashOptions, Optional ByVal intFlashTimes As Long = 2)
    Dim info As FlashWindowInfo
    With info
        .cbSize = Len(info)
        .dwflags = FlashWindowInfoFlags ' See enumeration for flag values
        .dwTimeout = 0 'Flash rate in ms or default cursor blink rate
        .hwnd = hwnd
        .uCount = intFlashTimes ' Number of times to flash
    End With
    FlashWindowEx info
End Sub

Sub flash(hwnd)
    FlashWindow hwnd, FLASHW_TIMERNOFG Or FLASHW_tray, 0
End Sub
希望有人帮忙把这个VB程序转化为C++程序,谢谢。

最佳答案

查看完整内容

看下 FLASHWINFO 这个定义的微软官方说明: Minimum supported client Windows XP [desktop apps only] https://msdn.microsoft.com/en-us/library/windows/desktop/ms679348(v=vs.85).aspx 最小的客户端系统是 XP,而楼主使用的是VC6,如果没有更新VC6默认SDK的话,是不支持 XP 以上的新SDK的,所以需要更新下 VC6 的 SDK 到 Xp 或者 Server 2003 才能使用 FLASHWINFO 这个结构哦! 另附:Visual C++ 6.0 支持的最后 ...




上一篇:::UnregisterClass函数咨询,谢谢!
下一篇:python爬虫抓取可用代理IP,然后怎么用呢?
51_avatar_middle
online_admins 发表于 2017-9-1 06:53:59 | 显示全部楼层


看下 FLASHWINFO 这个定义的微软官方说明:
Minimum supported client
Windows XP [desktop apps only]
https://msdn.microsoft.com/en-us ... 79348(v=vs.85).aspx

最小的客户端系统是 XP,而楼主使用的是VC6,如果没有更新VC6默认SDK的话,是不支持 XP 以上的新SDK的,所以需要更新下 VC6 的 SDK 到 Xp 或者 Server 2003 才能使用 FLASHWINFO 这个结构哦!

另附:Visual C++ 6.0 支持的最后一个SDK下载地址:
https://www.cctry.com/thread-1-1-1.html

评分

参与人数 1驿站币 +1 热心值 +1 收起 理由
75_avatar_small cumulonimbus + 1 + 1

查看全部评分

16_avatar_middle
在线会员 发表于 2017-9-1 09:31:29 | 显示全部楼层
VB 不会啊,没办法帮你了!
25_avatar_middle
在线会员 发表于 2017-9-1 09:41:22 | 显示全部楼层
到VC的站中发VB的东西。。。
75_avatar_middle
ico_lz  楼主| 发表于 2017-9-1 13:57:36 | 显示全部楼层
firefox 发表于 2017-9-1 09:31
VB 不会啊,没办法帮你了!

相当于制作QQ的提醒闪烁程序
08_avatar_middle
在线会员 发表于 2017-9-1 19:14:31 | 显示全部楼层
VB不懂。
但是VC可以写
  1. void CMFCApplication4Dlg::OnBnClickedOk()
  2. {
  3.         // TODO: 在此添加控件通知处理程序代码
  4.         FLASHWINFO fo;
  5.         CWnd *wnd = AfxGetMainWnd();
  6.         fo.cbSize = sizeof(FLASHWINFO);
  7.         HWND hwnd = wnd->GetSafeHwnd();
  8.         fo.hwnd = hwnd;
  9.         fo.dwFlags = FLASHW_ALL;
  10.         fo.dwTimeout = 200;
  11.         fo.uCount = 10;

  12.         ::FlashWindowEx(&fo);
  13.         return;
  14.         CDialogEx::OnOK();
  15. }
复制代码


建议多看看MSDN
希望有人帮忙把这个VB程序转化为C++程序,谢谢。
75_avatar_middle
ico_lz  楼主| 发表于 2017-10-10 13:36:12 | 显示全部楼层
SummerGull 发表于 2017-9-1 19:14
VB不懂。
但是VC可以写

D:\test1\test1Dlg.cpp(176) : error C2065: 'FLASHWINFO' : undeclared identifier
这个就已经执行不下去了
08_avatar_middle
在线会员 发表于 2017-10-10 20:07:15 | 显示全部楼层
cumulonimbus 发表于 2017-10-10 13:36
D:\test1\test1Dlg.cpp(176) : error C2065: 'FLASHWINFO' : undeclared identifier
这个就已经执行不下 ...

你编写的是MFC程序不? 你看看头文件包涵了没有
我用的是 FlashWindowEx 是FlashWindow的升级版本
可以调整闪动间隔 次数 和 闪动的 地方 比如 任务栏。 窗口等,,,
75_avatar_middle
ico_lz  楼主| 发表于 2017-10-11 11:52:18 | 显示全部楼层
SummerGull 发表于 2017-10-10 20:07
你编写的是MFC程序不? 你看看头文件包涵了没有
我用的是 FlashWindowEx 是FlashWindow的升级版本
可以 ...

有,我按照提示 Header: Declared in Winuser.h; include Windows.h.
头文件包含了这两个,但没有效果,照样有错误提示
08_avatar_middle
在线会员 发表于 2017-10-11 14:57:26 | 显示全部楼层
希望有人帮忙把这个VB程序转化为C++程序,谢谢。
The App;
75_avatar_middle
ico_lz  楼主| 发表于 2017-10-11 16:44:43 | 显示全部楼层
08_avatar_middle
在线会员 发表于 2017-10-11 18:19:53 | 显示全部楼层
75_avatar_middle
ico_lz  楼主| 发表于 2017-10-12 13:16:08 | 显示全部楼层
Syc 发表于 2017-10-11 18:30
看下 FLASHWINFO 这个定义的微软官方说明:
Minimum supported client
Windows XP [desktop apps onl ...

谢谢,确实有用了。
我还有一个问题,请大师帮忙答疑解惑,谢谢。
我这个为啥非得用全局函数呢?
BOOL CHyperLinkButton::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{               
        if (m_bMouseOver)   //如果光标在按钮上方则更改光标形状
        {
                ::SetCursor(m_hCurHand);
                return true;
        }        
        return CButton::OnSetCursor(pWnd, nHitTest, message);
}

这个我想不明白,为啥SetCursor(m_hCurHand)一定得用全局函数呢,CButton这个类也有成员函数SetCursor呀,不用成员函数就不行了呢?谢谢

LinkButton.rar

1.79 MB, 下载次数: 0

75_avatar_middle
ico_lz  楼主| 发表于 2017-10-12 13:16:42 | 显示全部楼层

谢谢,确实有用了。
我还有一个问题,请大师帮忙答疑解惑,谢谢。
我这个为啥非得用全局函数呢?
BOOL CHyperLinkButton::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{               
        if (m_bMouseOver)   //如果光标在按钮上方则更改光标形状
        {
                ::SetCursor(m_hCurHand);
                return true;
        }        
        return CButton::OnSetCursor(pWnd, nHitTest, message);
}

这个我想不明白,为啥SetCursor(m_hCurHand)一定得用全局函数呢,CButton这个类也有成员函数SetCursor呀,不用成员函数就不行了呢?谢谢

LinkButton.rar

1.79 MB, 下载次数: 0

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-6-17 02:03

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表