VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 505|回复: 14

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

[复制链接]
cumulonimbus 发表于 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++程序,谢谢。

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

firefox 发表于 2017-9-1 09:31:29 | 显示全部楼层
VB 不会啊,没办法帮你了!

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

zhouwu 发表于 2017-9-1 09:41:22 | 显示全部楼层
到VC的站中发VB的东西。。。

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

 楼主| cumulonimbus 发表于 2017-9-1 13:57:36 | 显示全部楼层
firefox 发表于 2017-9-1 09:31
VB 不会啊,没办法帮你了!

相当于制作QQ的提醒闪烁程序

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

SummerGull 发表于 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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入驿站

x

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

 楼主| cumulonimbus 发表于 2017-10-10 13:36:12 | 显示全部楼层
SummerGull 发表于 2017-9-1 19:14
VB不懂。
但是VC可以写

D:\test1\test1Dlg.cpp(176) : error C2065: 'FLASHWINFO' : undeclared identifier
这个就已经执行不下去了

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

SummerGull 发表于 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的升级版本
可以调整闪动间隔 次数 和 闪动的 地方 比如 任务栏。 窗口等,,,

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

 楼主| cumulonimbus 发表于 7 天前 | 显示全部楼层
SummerGull 发表于 2017-10-10 20:07
你编写的是MFC程序不? 你看看头文件包涵了没有
我用的是 FlashWindowEx 是FlashWindow的升级版本
可以 ...

有,我按照提示 Header: Declared in Winuser.h; include Windows.h.
头文件包含了这两个,但没有效果,照样有错误提示

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

SummerGull 发表于 7 天前 | 显示全部楼层

The App;

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入驿站

x

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

 楼主| cumulonimbus 发表于 7 天前 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入驿站

x

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

SummerGull 发表于 7 天前 | 显示全部楼层

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

Syc 发表于 7 天前 | 显示全部楼层


看下 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下载地址:
http://www.cctry.com/thread-1-1-1.html

评分

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

查看全部评分

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

 楼主| cumulonimbus 发表于 6 天前 | 显示全部楼层
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呀,不用成员函数就不行了呢?谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入驿站

x

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

 楼主| cumulonimbus 发表于 6 天前 | 显示全部楼层

谢谢,确实有用了。
我还有一个问题,请大师帮忙答疑解惑,谢谢。
我这个为啥非得用全局函数呢?
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呀,不用成员函数就不行了呢?谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入驿站

x

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

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

本版积分规则

展开

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )

返回顶部
x

VC驿站微信公众号cctry2009

GMT+8, 2017-10-18 04:44

Powered by Discuz!

© 2009-2017 cctry.com

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